1

いくつかのステップを自動化するコードを書いています。最初にユーザーを切り替えてから、perl スクリプトを実行する必要があります。これが私のコードです

if [ -a /try/Test ]
then
su trial -c ". /try/.profile Test"
expect -c 'spawn try1;
send "3\r";
send "1\r";
send "show\r";
interact';
fi

try1 は、呼び出しようとしている perl プログラムです。このスクリプトは、このエラーをスローします。

 couldn't execute "try1": no such file or directory
 while executing
 "spawn try1"

しかし、この手順を手動で実行してからこのスクリプトを実行すると、このスクリプトはエラーなしで実行されます。

4

1 に答える 1

1

あなたはすでにそれについて尋ねていると思います(そして私は答えましたよね)?

基本的なスケルトンは次のとおりです (エラー/タイムアウト/予期しない出力処理を追加してください)。

# collect password
stty -echo
send_user -- "Password: "
expect_user -re "(.*)\n"
send_user "\n"
stty echo
set pass $expect_out(1,string)

spawn sudo sh;
expect -re ": *$";
send -- "$pass\r"
expect -re "\$ *$";
send "echo SETTING PARAMS\r";
expect -re "\$ *$";
send "echo RUNNING MY COMMAND\r";
expect -re "\$ *$";
interact
于 2013-10-08T13:54:05.430 に答える