免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2238 | 回复: 1
打印 上一主题 下一主题

自动telnet的问题,精华已看还有疑问(shell自动telnet执行命令要判断正确性) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-10 21:51 |只看该作者 |倒序浏览
顺便问主要问题  用shell编写一个自动登陆脚本 执行一个命令 并明确知道这个命令是否执行成功
提出该问题的场景:
要登陆到远端机器上去执行一系列命令 每个命令之间是有逻辑的 需要根据前面命令是否成功决定后续命令怎么进行
(大多数情况下是3个命令左右,如果为了这3个命令而进行一次ftp再执行不值得,所以才会提出这样的问题。另外远端机器没有expect 本机也没有)


也许很多人会说去看精华
可是精华中为什么有人问到这个问题就没下文了呢?精华中的方法只是去简单的执行命令  并不对该命令执行的正确性进行判断
{
sleep 1
echo username
sleep 1
echo passwd
sleep 1
echo cmd
wait
echo exit
} | telnet ip

这样确实可以自动登陆并执行命令  但是试问怎么判断你这个命令是否执行正确   以往的贴子中 也有人问到 可是没有人有下文

那么换个角度看问题
ls -l;echo $? | cat xxxxx      
结果是什么? 就是执行ls -l 然后打印 0
lsxxxx -l;echo $? | cat xxxxx
这个结果又是什么?ksh:command not found
                            127
说明这样是可以判断其结果的
于是又这样写
{
sleep 1
echo username
sleep 1
echo passwd
sleep 1
echo “ls -l;echo $?”
wait
echo exit
} | telnet ip

结果是什么?
是自动登陆到机器上执行ls -l然后打印一个0

那么我们换一个错误的命令呢
{
sleep 1
echo username
sleep 1
echo passwd
sleep 1
echo “lsxxxxxxx -l;echo $?”
wait
echo exit
} | telnet ip

结果是什么?
结果是自动登陆到机器上 ksh:command not found
                                  0
注意这时$?的值还是0   
请问这是为什么呢?小弟不明白,哪个大侠帮忙解释一下

谢谢各位大侠

论坛徽章:
7
荣誉版主
日期:2011-11-23 16:44:17子鼠
日期:2014-07-24 15:38:07狮子座
日期:2014-07-24 11:00:54巨蟹座
日期:2014-07-21 19:03:10双子座
日期:2014-05-22 12:00:09卯兔
日期:2014-05-08 19:43:17卯兔
日期:2014-08-22 13:39:09
2 [报告]
发表于 2006-07-10 22:43 |只看该作者
echo “lsxxxxxxx -l;echo $?”
这句换成单引号试一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP