下面的bash脚本不起作用,因为无论远程脚本/tmp/my.sh返回哪个退出代码,命令\’expect\’总是返回0。
任何想法,使其工作? 谢谢。
#!/usr/bash user=root passwd=123456abcd host=10.58.33.21 expect -c \” spawn ssh -o StrictHostKeyChecking=no -l $user $host bash -x /tmp/my.sh expect { \”assword:\” {send \”$passwdr\”} eof {exit $?} } \” case \”$?\” in 0) echo \”Password successfully changed on $host by $user\” ;; 1) echo \”Failure,password unchanged\” ;; 2) echo \”Failure,new and old passwords are too similar\” ;; 3) echo \”Failure,password must be longer\” ;; *) echo \”Password Failed to change on $host\” ;; esac
编辑于10:23 AM 11/27/2013
感谢您的意见。 让我再次强调这个问题,
是否有任何脚本语言可用,这是非常类似于linux的脚本
在当前目录中运行expect脚本
无法通过期望SSH的脚本bash命令
预计正则Expression式数字模式
检查远程文件是否存在,并在预期脚本中执行其他 *** 作
主脚本应该在linux服务器A上静默运行,在此期间它将在服务器B上调用另一个脚本my.sh, 无人值守 。 问题是如何获得my.sh的退出码 ?
这就是为什么我不能在我的情况下利用ssl_key方法,至less需要一次configuration。
TCL,预计:多个文件与SCP
使用\’expect\’命令远程将密码传递给SSH运行脚本
在expect脚本中包含#include
从linux执行powershell脚本
使用Expect通过SSHpipe理机器,但不能完成所有任务
#!/usr/bin/expect set user root set passwd 123456abcd set host 10.58.33.21 set result_code 255 # exp_internal 1 to see internal processing exp_internal 0 spawn ssh -o StrictHostKeyChecking=no -l $user $host bash -x /tmp/my.sh && echo aaa0bbb || echo aaa$?bbb expect { \”assword:\” {send \”$passwdr\”; exp_continue} -re \”aaa(.*)bbb\” {set result_code $expect_out(1,string)} eof {} timeout {set result_code -1} } switch $result_code { 0 { puts \”Password successfully changed on $host by $user\” } 1 { puts \”Failure,password unchanged\” } 2 { puts \”Failure,new and old passwords are too similar\” } 3 { puts \”Failure,password must be longer\” } -1 { puts \”Failure,timeout\” } default { puts \”Password Failed to change on $host\” } } exit $result_code
总结
以上是内存溢出为你收集整理的是否可以设置“预期”的退出码全部内容,希望文章能够帮你解决是否可以设置“预期”的退出码所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
请登录后查看评论内容