質問編集履歴
1
予測結果とテスト結果との比較結果が確認できる表を追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -33,32 +33,52 @@
|
|
33
33
|
|1|標準出力 (出力:test-std)|test1.txt (出力:test-std)|
|
34
34
|
|2|標準エラー出力(出力なし)|標準エラー出力(出力なし)|
|
35
35
|
|
36
|
+
|出力先|予想結果|テスト結果|
|
37
|
+
|:--:|:--:|:--:|
|
38
|
+
|terminal|||
|
36
|
-
|
39
|
+
|test1.txt|test-std|test-std|
|
37
40
|
|
41
|
+
テスト結果ではtest1.txtにtest-stdが出力されており,terminalには何も出力されていないため,上記の予想結果と一致しています.
|
42
|
+
|
38
43
|
(i)-(ii).
|
39
44
|
|ファイルディスクリプタ|echo実行直後|2>test2.txt|
|
40
45
|
|:--:|:--:|:--:|
|
41
46
|
|1|標準出力 (出力:test-std)|標準出力 (出力:test-std)|
|
42
47
|
|2|標準エラー出力(出力なし)|test2.txt(出力なし)|
|
43
48
|
|
49
|
+
|出力先|予想結果|テスト結果|
|
50
|
+
|:--:|:--:|:--:|
|
44
|
-
|
51
|
+
|terminal|test-std|test-std|
|
52
|
+
|test2.txt|||
|
45
53
|
|
54
|
+
テスト結果ではtest2.txtに何も出力されておらず,terminalにはtest-stdが出力されているため,上記の予想結果と一致しています.
|
55
|
+
|
46
56
|
(i)-(iii).
|
47
57
|
|ファイルディスクリプタ|echo実行直後|1>&2|1>test3.txt|
|
48
58
|
|:--:|:--:|:--:|:--:|
|
49
59
|
|1|標準出力 (出力:test-err)|標準エラー出力 (出力:test-err)|test3.txt (出力:test-err)|
|
50
60
|
|2|標準エラー出力(出力なし)|標準エラー出力(出力なし)|標準エラー出力(出力なし)|
|
51
61
|
|
62
|
+
|出力先|予想結果|テスト結果|
|
63
|
+
|:--:|:--:|:--:|
|
64
|
+
|terminal|||
|
52
|
-
|
65
|
+
|test3.txt|test-err|test-err|
|
53
66
|
|
67
|
+
テスト結果ではtest3.txtにはtest-errが出力されており,terminalには何も出力されていないため,上記の予想結果と一致しています.
|
68
|
+
|
54
69
|
(i)-(iv).
|
55
70
|
|ファイルディスクリプタ|echo実行直後|1>&2|2>test4.txt|
|
56
71
|
|:--:|:--:|:--:|:--:|
|
57
72
|
|1|標準出力 (出力:test-err)|標準エラー出力 (出力:test-err)|標準エラー出力 (出力:test-err)|
|
58
73
|
|2|標準エラー出力(出力なし)|標準エラー出力(出力なし)|test4.txt(出力なし)|
|
59
74
|
|
75
|
+
|出力先|予想結果|テスト結果|
|
76
|
+
|:--:|:--:|:--:|
|
60
|
-
|
77
|
+
|terminal|test-err|test-err|
|
78
|
+
|test4.txt|||
|
61
79
|
|
80
|
+
テスト結果ではtest4.txtには何も出力されておらず,terminalにはtest-errが出力されているため,上記の予想結果と一致しています.
|
81
|
+
|
62
82
|
## スクリプト化したものを一括で実行してリダイレクトさせた場合(ii)
|
63
83
|
問題は,上記のechoコマンドを一つのスクリプトにまとめ込み,スクリプトを実行させた場合です.スクリプトは以下のとおりです.なお,スクリプト名はtest.shです.
|
64
84
|
```
|
@@ -91,6 +111,11 @@
|
|
91
111
|
|1|標準出力 (出力:test-std)|標準エラー出力 (出力:test-err)|標準出力(出力:test-std)と標準エラー出力(出力:test-err)|test6.txt (出力:test-stdとtest-err)|
|
92
112
|
|2|標準エラー出力(出力なし)|標準エラー出力(出力なし)|標準エラー出力(出力なし)|標準エラー出力(出力なし)|
|
93
113
|
|
114
|
+
|出力先|予想結果|テスト結果|
|
115
|
+
|:--:|:--:|:--:|
|
116
|
+
|terminal||test-err|
|
117
|
+
|test6.txt|test-stdとtest-err|test-std|
|
118
|
+
|
94
119
|
テスト結果と比較すると,テスト結果ではtest6.txtにtest-stdのみが出力されており,terminalにはtest-errが出力されています.
|
95
120
|
|
96
121
|
(ii)-(ii).
|
@@ -99,6 +124,11 @@
|
|
99
124
|
|1|標準出力 (出力:test-std)|標準エラー出力 (出力:test-err)|標準出力(出力:test-std)と標準エラー出力(出力:test-err)|標準出力(出力:test-std)と標準エラー出力(出力:test-err)|
|
100
125
|
|2|標準エラー出力(出力なし)|標準エラー出力(出力なし)|標準エラー出力(出力なし)|test5.txt (出力なし)|
|
101
126
|
|
127
|
+
|出力先|予想結果|テスト結果|
|
128
|
+
|:--:|:--:|:--:|
|
129
|
+
|terminal|test-stdとtest-err|test-std|
|
130
|
+
|test5.txt||test-err|
|
131
|
+
|
102
132
|
テスト結果と比較すると,テスト結果ではtest5.txtにtest-errのみが出力されており,terminalにはtest-stdが出力されています.
|
103
133
|
|
104
134
|
いずれの結果も出力結果test-errの参照先が予想とテスト結果で異なっており,スクリプト実行直後にファイルディスクリプタ2の参照先となっていれば,予想とテスト結果が合致すると言えます.そこでスクリプト2行目の動作を見直してみると,echoでstd-errを標準出力として出力した後に(std-errのファイルディスクリプタは1),1>&2の操作によって,ファイルディスクリプタ1の参照先を標準出力エラーとしているため,やはり標準出力エラーとしてstd-err(ファイルディスクリプタは1)が出力されると予想されます.また,コマンドを個別で実行してリダイレクトさせた場合(i)ではそのように動作していることから,恐らくこの理解で問題がないと予想されます.
|