2016-10-04 97 views
0

在下面的bash脚本中,我将获取服务器上的所有IP并返回它们的GPS坐标。这个脚本在没有if语句的情况下效果很好,但是它返回了“请提供一个有效的IP地址”,然后它返回大约10个IP地址,并带有它们各自的坐标。因此,我认为问题在于,即使“ip”为空,trace trace命令也被调用。因此,我把如果bash脚本中的语句语法错误

“如果[[$ IP]”

在此之前

,使其只有当IP不为空执行。不过,现在的脚本不能运行......我的错误

“行6:附近意外的标记‘如果’ 线6语法错误:‘如果[$ IP];’”

我有许多不同的if语句的变体,以使它只能再次得到相同的错误。请帮忙吗?

在此先感谢!

Bash Script

+2

你的'if'在第一个for循环中的'do'之前,那么你在那里试图做什么?你没有'fi'来结束它,所以我不确定什么应该是它的块的一部分。另外,请不要在此放置代码的图像,将实际代码作为代码块,以便人们可以搜索它并复制/粘贴它以自行尝试。 –

+0

是的,就是这样。我花了几分钟的时间来理解为什么,但现在我明白了。愚蠢的错误在我身上。谢谢! – boppa

回答

0

正如评论所指出的@Eric,你的语法不是proper.You可以在shellcheck检查你的代码的语法。

此外,检查你需要使用-z选项

在你的情况为空字符串:if [[ -z "$ip" ]]

去下面的链接了解详情: Null & empty string comparision in Unix Bash Shell Script

而且,这是一个很好实践双重报价"变量