【发布时间】:2017-04-25 04:35:02
【问题描述】:
#!/bin/bash
echo "Number of hosts entered are "$#
echo "Hostnames are "$@
for i in "$@"
do
echo "Logging in to the host "$i
pbsh root@$i '
ipaddr=`ip r | awk '{print $9}'`
if [ ipaddr = 172.*.*.* ]
then
echo "Script can not be run in this IP series"
exit
else
cd /var/tmp ; wget http://**********
fi'
done
执行上述脚本后,它会抛出以下错误。脚本正在执行,但不是以所需的方式。
awk:命令。行:1:{打印
awk:命令。 line:1: ^ 意外的换行符或字符串结尾
我是脚本的新手。如果脚本中有任何错误,请纠正我。
【问题讨论】:
-
您的主要问题是
pbsh末尾的',它由您的awk中的另一个'结束,因此您可能想通过执行@987654326 来逃避后者@。另一件事是您的if声明,除非您检查变量$ipaddr而不是 ipaddr 字符串,否则它永远不会是真的。
标签: linux bash shell awk scripting-language