我正在编写一个脚本,它将 Valgrind 复制到我们在命令行输入的任何架子上。语法如下:
vgrindCopy [货架号]
出于某种原因,文件将毫无问题地复制过来,但是在复制完成后会观察到以下错误:
错误的 spawn_id (进程提前死亡?)在执行“expect”#”时
以下是相关代码的副本:
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 \"#\"
”行,那么程序就不会再复制任何文件了。奇怪的是,我在运行脚本时看到了问题,但同事却没有。
有没有人遇到过类似的问题并确定原因?任何帮助将一如既往地不胜感激!