2015-07-10 98 views
1

我在下面期望嵌入的bash脚本中遇到错误。 当我运行它,我得到下面的错误,并在脚本结束虽然 我给上commandline.The参数指望发送是无法获得$ site变量无法读取文件:在bash脚本中出现错误

./expect_delete "password" usa rvomero 

“输入站点名称对于用户名:无法读取文件 “现场”:没有这样的文件或目录”

脚本:

#!/bin/bash 
password="$1" 
me=`whoami` 
site="$2" 
list="$3" 
echo $site $list 
for i in `echo $list` 
do 
/tools/cfr/bin/expect -c " 
set timeout 10 
spawn <fullpathtoanotherbashscript> $site $i 
expect "Enter site name for $me: " 
send "$site\r" 
expect "Enter password for $me: " 
send "$password\r" 
expect eof 
" 
done 

任何帮助表示赞赏

+0

作为一个侧面说明,你确定预期的-c标志允许多行命令吗?如果这导致问题,也许你可以使用heredoc,如[这个问题]所示(http://stackoverflow.com/questions/10393848/using-expect-in-bash-script)。我怀疑你的多个“可能会导致问题 – Aserre

+0

@Ploutox为我工作!! – anudeep

+0

很高兴你解决了你的问题:)我会将你的问题标记为重复,虽然,因为你用我链接的问题来解决你的问题。 – Aserre

回答

0

你可能会更好封装预计'脚本,这样就不会有任何shell扩展回事,让你的变量它通过简单地把它们导出 -

export USER=fred 

expect -c ' 
    set user $env(USER) 
    .... 
'