2016-07-18 23 views
1

入力としてパスワードを要求するスクリプトファイルを実行しようとしています。コマンドに自動的に必要なコマンドを与える方法はありますか? usernameには-Uのパラメータを持ちますが、パスワードにはパラメータがないのはpsqlです。スクリプトの実行中に自動的に入力する方法はありますか?

例:

[email protected]:~$ sh redshift.sh 
Password for user xyz: 
+0

可能な重複/ 14392525/pass-arguments-interactive-program-non-interactively) –

答えて

0

あなたは以下のようなスクリプトのコマンドライン引数を提供することができます。 sh redshift.sh yourInput とスクリプトでvar input=$1としてそれを取得し、それに応じて使用します。

この質問は、すでにあなたはこのためにexpectを使用することができますhere

+0

私の手っ取り早いことに、私の.shファイルにはusernameパラメータを除いてpsqlコマンドがありますが、パスワードはありません。私はそれを自動化する必要があるので、私はちょうどスクリプトを実行する必要があります – Freeman

1

に答えています。ここ は簡単な例です:

#!/usr/bin/expect -f 
set PASSWORD "1" 
set USER "dvp" 
spawn psql -U ${USER} -W 
expect "*?assword*" 
send -- "${PASSWORD}\r" 
expect eof 

おそらくあなたが最初expectをインストールする必要があります(http://stackoverflow.com/questions [インタラクティブに対話型プログラム以外に引数を渡す]の

sudo apt-get install expect 
関連する問題