2015-07-10 63 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) 
    .... 
'