58

独自のbashスクリプトを作成していますが、現在は行き詰まっています。基本的に、スクリプトはCentOSでのサーバーセットアップを自動化するために使用されます。一部のソフトウェアは通常、ユーザーにパスワードの入力を求めます。ユーザーに尋ねるのではなく、生成して保存したパスワードを変数としてスクリプトに配置したいと思います。

インストール中に「新しいパスワード:」というメッセージが表示された$key場合、bashスクリプトを使用して、ユーザーが入力したかのようにスクリプトに変数に格納されている値を配置するにはどうすればよいですか?

4

2 に答える 2

64

「expect」コマンドが必要なことを実行することがわかるはずです。それは広く利用可能です。

非常に大まかな例:

#!/usr/bin/expect
set pass "mysecret"

spawn /usr/bin/passwd

expect "password: "
send "$pass"
expect "password: "
send "$pass"
于 2013-02-03T08:30:39.590 に答える
4

これが私が書いたスニペットです。ユーザーのパスワードを要求し、/etc/passwd に設定します。必要なものを取得するために、おそらく少し操作できます。

echo -n " Please enter the password for the given user: "
read userPass
useradd $userAcct && echo -e "$userPass\n$userPass\n" | passwd $userAcct > /dev/null 2>&1 && echo " User account has been created." || echo " ERR -- User account creation failed!"
于 2013-02-03T08:38:31.727 に答える