Bashスクリプトを使用した対話型プログラムの実行

Bashスクリプトを使用した対話型プログラムの実行

今日はbashでの初日です。おそらく、この質問は以前に要求されたかもしれませんが、Googleを試しましたが、結果は空でした。たぶん私の問題をどのように表現するのか分からないからです。

私はエンドユーザーに一連の質問を投げ、最終的にその質問を使っていくつかのサーバーを設定するカスタム/社内Linuxプログラムを持っています。次に、bashスクリプトがbinファイルを呼び出して静的応答を提供するようにこれを自動化したいと思います。理想的には、質問された順序で答えをファイルに保存してから、プログラムに提供したいと思います。

今私はファイルを読み取るサンプルスクリプトを書いています。しかし、ファイル入力をプログラムへの回答の提供と組み合わせて使用​​する例が見つかりません。

どんなアドバイスも本当にありがとうございます。

編集1

私は以下を試してみます:

#!/bin/bash
echo "This script is about to call mytestapp"
mytestapp
printf 'lab\nci1\n6cr\n197\n0\n252\n888\n4\n\nAmerica/Toronto\n
~

このプログラムを実行すると、「mytestapp」プログラムが起動しますが、最初の質問で次の入力を待っています。

dev1:~# sh /tmp/test_wrapper.sh 
This script is about to call mytestapp
Enter the 3-letter location code (e.g. usa):

そして、スクリプトのprintfステートメントは決して適用されません。

編集2

私の間違いを見つけました。パラメータをアプリケーションにパイプで接続する必要があります。

 printf 'lab\nci1\n6cr\n197\n0\n252\n888\n4\n\nAmerica/Toronto\n' | mytestapp

ベストアンサー1

コマンドを使用できますが、printf一般的に以下を使用して理解および保守する方が簡単です。ここのドキュメント:

mytestapp <<EOF
lab
i1
6cr
197
0
252
888
4

America/Toronto
EOF

おすすめ記事