我试图通过使用Linux的预期来检测主机。
现在,我可以通过bash使用以下命令来获取返回值并检查主机状态。
#!/usr/bin/bash
nc -z $DUT_IP 22 && echo $?
我想通过期待做同样的事情。但似乎我失败了。
#!/usr/bin/expect --
set DUT_IP "192.168.1.9"
set result [exec nc -z $DUT_IP 22]
send_user "$result\n\n"
我收到以下错误消息:
invalid port &&
while executing
"exec nc -z $DUT_IP 22 && echo $?"
invoked from within
"set result [exec nc -z $DUT_IP 22 && echo $?] "
(file "reboot.exp" line 44)
答案 0 :(得分:0)
使用&&
分隔命令是shell构造,而不是expect构造。您可以为该命令列表显式启动shell:
set result [exec sh -c "nc -z $DUT_IP 22 && echo $?"]
请注意,如果命令成功,则仅打印退出状态,因此结果将为" 0"或空的。您想使用;
代替&&