シェルスクリプトを介してあるスクリプトから別のスクリプトに入力を送信したい
このスクリプトを停止すると、「続行しますか?」というメッセージが表示されます。
$MAIN_SCRIPT_PATH/first.sh stop
このスクリプトを停止するために別のスクリプトを使用しています。このスクリプトにyesを送信する必要がありますfirst.sh
。どうすればいいですか?
first.sh が停止すると、ユーザー入力を要求します。続行しますか?送らなければならない。
答え1
スクリプトの標準入力に書き込むことで動作することを確認できます。例えば、
echo yes | $MAIN_SCRIPT_PATH/first.sh stop
そうでない場合、一部のプログラムでは、expect
ユーザー入力をシミュレートする前に特定のプロンプトを待つことがあります。
また、他のオプションを指定せずに停止確認を要求する場合、これは誤って作成されたスクリプトです。first.sh --help
ユーザー入力のスキップに関する追加情報が表示されていることを確認してください。スクリプトには通常、ユーザー入力をサイレントする-y
//-q
オプションがあります。-s
答え2
Linuxでは、coreutilsパッケージもこのyes
コマンドを提供します。したがって、次を実行します。
yes | $MAIN_SCRIPT_PATH/first.sh stop