このようなシェルスクリプト(POSIX)を実行します。オプション-sを指定してシェルスクリプト(/ bin/sh)を作成し、内部で入力を読み取る方法
#!/bin/sh
# this is a.sh
echo your age?
read age
echo "You are $age."
これは、その後、質問はスキップされ
cat a.sh | /bin/sh -s
として、標準入力経由のbin/shを/にスローされます。
どのように質問できますか? cat a.sh
によって供給パイプ:
「/ bin/sh a.sh」の代わりにこの方法で実行している理由はありますか?問題は 'a.sh'が標準入力を'/bin/sh'の呼び出しから継承し、その標準入力が 'a.sh'であることです。 '/ bin/sh'は1行目と2行目を読み込みますが、' read'文は3行目を読み込みます。 '/ bin/sh'が読み込む入力がなくなるので終了します。 – chepner