read
コマンドを使用してコマンドの引数をインタラクティブに読み取るbashスクリプトがあります(例:yes / noオプション)。デフォルトのオプション値を引数として渡す非対話型スクリプトでこのスクリプトを呼び出す方法はありますか?
インタラクティブスクリプトに渡さなければならないのは、1つのオプションだけではありません。
read
コマンドを使用してコマンドの引数をインタラクティブに読み取るbashスクリプトがあります(例:yes / noオプション)。デフォルトのオプション値を引数として渡す非対話型スクリプトでこのスクリプトを呼び出す方法はありますか?
インタラクティブスクリプトに渡さなければならないのは、1つのオプションだけではありません。
より複雑なタスクについてはexpect
(http://en.wikipedia.org/wiki/Expect)があります。基本的にユーザーをシミュレートし、特定のプログラム出力や関連するものに反応する方法をスクリプトでコーディングできます。
これは、そのような場合にssh
パスワードをパイプすることを禁止している場合にも機能します。
データをファイルに入れて、次のようにリダイレクトできます。
$ cat file.sh
#!/bin/bash
read x
read y
echo $x
echo $y
スクリプトのデータ:
$ cat data.txt
2
3
スクリプトの実行:
$ file.sh < data.txt
2
3
もう1つ追加したいだけです。他の場所でそれを見つけました、そして非常に簡単です。コマンド「execute_command」のコマンドラインですべてのプロンプトにyesを渡したいとすると、それから単にyesをパイプします。
yes | execute_command
これは、すべてのyes/noプロンプトへの回答としてyesを使用します。
printfを使用して、入力をスクリプトにパイプすることもできます。
var=val
printf "yes\nno\nmaybe\n$var\n" | ./your_script.sh