コマンド ラインで入力した任意のシェルフに Valgrind をコピーするスクリプトを作成しています。構文は次のとおりです。
vgrindCopy [棚番号]
何らかの理由で、ファイルは問題なくコピーされますが、コピーが完了すると次のエラーが発生します。
「expect "#"」の実行中に悪い spawn_id (プロセスが以前に停止した?)
関連するコードのコピーを次に示します。
function login_shelf {
expect -c "
set timeout 15
spawn $1
expect \"password:\"
send \"$PW\r\"
expect \"#\"
sleep 1
exit
"
}
# login and make the valgrind directory at /sfs/software/shelf/current
set -- /opt/swe/tools/ext/gnu/valgrind-3.7.0/i686-linux2.6/lib/valgrind/*
login_shelf "/opt/corp/projects/shelftools/bin/app rsync -Lau $* $shelf:/shelf/valgrind"
コードをいじってみたところ、" " という行を削除するとexpect \"#\"
、プログラムがファイルをコピーしなくなることがわかりました。スクリプトを実行すると問題が発生するのに、同僚には問題が発生しないのも奇妙なことです。
誰かが同様の問題を抱えていて、原因を特定しましたか? いつものように、どんな助けでも大歓迎です!