0

コマンドを実行するときにユーザー名とパスワードのプロンプトを自動的にフィードするためのシェル スクリプトを書きたいだけですが、これを試してみましたが、うまくいきませんでした。どんな方法でも私を助けてください。

#!/bin/bash
#!/usr/bin/expect

ls -ltr

spawn sudo git pull

expect "[sudo] password for sandeep:"

send "sandeep123\n"

expect "Username :"

send "sandeep\n"

expect "Password :"

send "sandeep121\n"

次の出力が得られます。

sandeep@K2-Sandeep-08:~$ ./checkout.sh 
total 64
./checkout.sh: line 8: spawn: command not found
couldn't read file "Username:": no such file or directory
./checkout.sh: line 16: send: command not found
couldn't read file "Password:": no such file or directory
./checkout.sh: line 20: send: command not found
4

2 に答える 2

1

2 つの # があります。ただし、スクリプトはこれらのプログラムのいずれかで一度にしか実行できません。ほとんどのコマンドは Expect コマンドである#!/bin/bashため、この行を削除して、スクリプトが Expect によって実行されるようにします。ただし、この行ls -ltrは Expect コマンドではないため、エラーが発生しますが、これを に変換することで回避できますputs [exec ls -ltr]。詳細については、Expect のマニュアル ページを参照してください。

于 2013-07-09T12:01:25.947 に答える