0
我做劇本:希望將數據附加到文件
for server in ${servTab[*]}; do
echo $server >> /var/www/html/df.txt
/usr/bin/expect <<EOF
spawn ssh $server df | grep /appl/ | awk '{print \\\$4}' | sed s/%// >> /var/www/html/df.txt
expect "password"
send "$pass\r"
expect "$ "
EOF
,但運行後我有錯誤:
spawn ssh server-1-lin df | grep /appl/ | awk '{print $4}' | sed s/%// >> /var/www/html/df.txt
ksh: /var/www/html/df.txt: cannot create [No such file or directory]
它的工作原理,只有當它看起來象下面這樣:
for server in ${servTab[*]}; do
echo $server >> df.txt
/usr/bin/expect <<EOF
spawn ssh $server df | grep /appl/ | awk '{print \\\$4}' | sed s/%// >> df.txt
expect "password"
send "$pass\r"
expect "$ "
EOF
但總是在用戶的主目錄中創建文件「df.txt」,而不管目錄腳本是哪個目錄。感謝幫助。
順便說一句:添加shebang和'done'。 – Cyrus
請勿使用期望值。如果您使用它的唯一原因是自動爲ssh傳遞密碼,則可以使用'sshpass'。 –
...和,當然,當創建它的重定向是>> >> df.txt時,當前工作目錄中會創建*'df.txt'。你爲什麼期望有什麼不同? –