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'。你为什么期望有什么不同? –