質問編集履歴
1
標準入力の記載を訂正
title
CHANGED
File without changes
|
body
CHANGED
@@ -3,9 +3,9 @@
|
|
3
3
|
|
4
4
|
### 問題点
|
5
5
|
A.shはコマンドライン引数が必要で、 `$ A.sh string`のように使います。
|
6
|
-
B.shはコマンドライン引数やオプションを必要し、またtestコマンドで標準入力
|
6
|
+
B.shはコマンドライン引数やオプションを必要し、またtestコマンドで標準入力がパイプかどうかを判定し処理内容を変更しています。
|
7
7
|
|
8
|
-
B.sh単体での実行は問題ありませんが、A.shから
|
8
|
+
B.sh単体での実行は問題ありませんが、A.shから呼び出す場合、B.sh内でパイプと判定され、正しく処理できません。
|
9
9
|
|
10
10
|
### こうしたい
|
11
11
|
B.sh単体およびA.shからB.shを呼び出した場合でも正しく標準入力を受け取りたい。
|
@@ -24,7 +24,6 @@
|
|
24
24
|
#!/usr/bin/env bash
|
25
25
|
if [ -p /dev/stdin ]; then
|
26
26
|
data=$( cat - )
|
27
|
-
echo "${data}"
|
28
27
|
else
|
29
28
|
data=$( cat ${infile} )
|
30
29
|
fi
|
@@ -37,7 +36,7 @@
|
|
37
36
|
```Bash
|
38
37
|
bash B.sh -p $arg_P -t $arg_T ${infile} > ${outfile}
|
39
38
|
```
|
40
|
-
この場合に、A.shを実行するとB.shで標準入力
|
39
|
+
この場合に、A.shを実行するとB.shで標準入力がパイプと判定されてしまいます。
|
41
40
|
|
42
41
|
質問が拙くて申し訳なく思います。
|
43
42
|
ご質問やご不明点がございましたらコメントください。よろしくお願いします。
|