如果导入时不在脚本中,则无法使用ECHO命令

lztngnrs  于 2022-10-17  发布在  Unix
关注(0)|答案(1)|浏览(162)

我想在我的脚本中使用Expect方法,所以我在脚本中使用了这个命令


# !/usr/bin/expect

现在,在使用此命令后,我无法声明任何数组,甚至无法使用ECHO命令
完整代码


# !/usr/bin/expect

declare -a arr=("ip1" "ip2")
for i in "${arr[@]}"
do

   spawn ssh myhost@i
   send "exit\n"
done

整个数组声明和FOR循环抛出错误,如命令名无效,我无法使用ECHO命令。当我在不导入的情况下尝试ECHO命令时,除非一切正常。

wooyq4lh

wooyq4lh1#

第一行声明您的脚本是Expect脚本,并且Expect脚本使用TCL脚本语言。您所做的是在同一脚本中混合使用bash和tcls,这就是出现错误消息的原因。在TCL中设置列表并循环很容易:


# !/usr/bin/expect

set arr {ip1 ip2}
foreach i $arr {
   spawn ssh myhost@$i
   send "exit\r"
}

相关问题