Chinaunix

标题: 请大家帮忙看看我这个脚本的输出,我觉得很诡异。还望大家不吝赐教! [打印本页]

作者: zy86416779    时间: 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"
复制代码
本人是新手,还望大家不吝赐教!
作者: Shell_HAT    时间: 2015-08-28 23:17
$ECHO "send \"shroot\\r\"" >> /var/tmp/snoop_$_DOMAINNAME$i
试试
作者: zy86416779    时间: 2015-08-29 10:41
我试过了 是不行的回复 2# Shell_HAT


   
作者: Shell_HAT    时间: 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"

作者: tuyajie    时间: 2015-08-29 11:26
head -1 | od -Ax -tcx1
看看有没有奇怪的字符 \r啥的
作者: MMMIX    时间: 2015-08-29 11:31
回复 1# zy86416779


    你这脚本中的 ECHO 是个空值啊




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2