ABCD.sh
ユーザー名とパスワードの入力を求めるメッセージをサーバーにアップロードするコマンドを含むシェルスクリプトがあります。
ここにユーザー名とパスワードを提供したくありませんが、ユーザー名とパスワードを外部パラメータとして渡したいのですが、どうすればよいですか?
username =$1
password=$2
pushcommand
ユーザー名とパスワードを入力してくださいpushcommand
。シェルスクリプトは自動的におよび$1
から取得する必要があります$2
。
ベストアンサー1
pushcommandが単に標準入力から最初のユーザー名を読み取り、新しい行で区切られたパスワードを読み取る場合は、次のことができます。
echo "$username\n$password" | pushcommand
ここで、echo呼び出しは、ユーザー名とパスワード変数を別々の行に出力します。
「|」は、「左コマンドの出力を右コマンドの入力として使用する」という意味です。この構成をシェルスクリプトでは「パイプライン」と呼びます。
より複雑な対話型スクリプトを作成するには、次の点を確認することをお勧めします。予想されるまたは多分コミット。 Expectやkermitの助けを借りるには、表示されるプロンプトなど、プッシュコマンドの対話型使用が実際にどのように見えるかを示す例を公開する必要があります。