免费注册 查看新帖 |

Chinaunix

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

[系统管理] 请大家帮忙看看我这个脚本的输出,我觉得很诡异。还望大家不吝赐教! [复制链接]

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-09-07 06:20:00程序设计版块每日发帖之星
日期:2015-09-07 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-08-28 23:06 |只看该作者 |倒序浏览
  1. #!/bin/bash

  2. #ECHO=/usr/bin/echo
  3. #HOSTNAME=/usr/bin/hostname

  4. #_HOSTS={inf1,inf2,mas1,mate1} [I do not know why this way does not work]
  5. _HOSTNAME=`$HOSTNAME`
  6. _DOMAINNAME=`$ECHO ${_HOSTNAME:0:4}`

  7. for i in inf1 inf2 mas1 mate1
  8. do
  9.     $ECHO "spawn ssh root@$_DOMAINNAME$i" > /var/tmp/snoop_$_DOMAINNAME$i
  10.     $ECHO "expect \"password\"" >> /var/tmp/snoop_$_DOMAINNAME$i
  11.     $ECHO "send \"shroot\r\"" >> /var/tmp/snoop_$_DOMAINNAME$i
  12. done
复制代码
  1. # cat /var/tmp/snoop_szl0inf1
  2. spawn ssh root@szl0inf1
  3. expect "password"
  4. "end "shroot
  5. # cat /var/tmp/snoop_szl0inf2
  6. spawn ssh root@szl0inf2
  7. expect "password"
  8. "end "shroot
复制代码
我不明白为什么我的语句$ECHO "send \"shroot\r\"" >> /var/tmp/snoop_$_DOMAINNAME$i,会出现这样的结果。我本来要的是send "shroot\r"。
其实我如果手动输入的话,这是没有问题的。
  1. # bash
  2. [root@szl0mws1:/JUMP/henry]#echo "send \"shroot\r\"" > /var/tmp/test_temp
  3. [root@szl0mws1:/JUMP/henry]#cat /var/tmp/test_temp
  4. send "shroot\r"
复制代码
本人是新手,还望大家不吝赐教!

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
2 [报告]
发表于 2015-08-28 23:17 |只看该作者
$ECHO "send \"shroot\\r\"" >> /var/tmp/snoop_$_DOMAINNAME$i
试试

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-09-07 06:20:00程序设计版块每日发帖之星
日期:2015-09-07 06:20:00
3 [报告]
发表于 2015-08-29 10:41 |只看该作者
我试过了 是不行的回复 2# Shell_HAT


   

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
4 [报告]
发表于 2015-08-29 11:22 |只看该作者
我这里测试双引号和单引号都没问题
你试试转换一下脚本格式吧
  1. dos2unix test.sh
复制代码
[HAT]# cat test.sh
#!/bin/bash
_HOSTNAME="$HOSTNAME"
_DOMAINNAME="${_HOSTNAME:0:4}"

for i in inf1 inf2 mas1 mate1; do
    echo "spawn ssh $_DOMAINNAME$i" > /var/tmp/snoop_$_DOMAINNAME$i
    echo "expect \"password\"" >> /var/tmp/snoop_$_DOMAINNAME$i
    echo "send \"shroot\r\"" >> /var/tmp/snoop_$_DOMAINNAME$i
    echo 'send "shroot\r"' >> /var/tmp/snoop_$_DOMAINNAME$i
done

[HAT]# ./test.sh

[HAT]# cat snoop_HATinf2
spawn ssh WLS1inf2
expect "password"
send "shroot\r"
send "shroot\r"

论坛徽章:
7
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:092015小元宵徽章
日期:2015-03-06 15:58:18程序设计版块每日发帖之星
日期:2015-08-09 06:20:00每日论坛发贴之星
日期:2015-08-09 06:20:00程序设计版块每日发帖之星
日期:2015-08-22 06:20:00程序设计版块每日发帖之星
日期:2015-08-27 06:20:00
5 [报告]
发表于 2015-08-29 11:26 |只看该作者
head -1 | od -Ax -tcx1
看看有没有奇怪的字符 \r啥的

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
6 [报告]
发表于 2015-08-29 11:31 |只看该作者
回复 1# zy86416779


    你这脚本中的 ECHO 是个空值啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP