命令里面if语句的bash脚本

前端之家收集整理的这篇文章主要介绍了命令里面if语句的bash脚本前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Why doesn’t my if statement with backticks work properly?4个
我有以下一行作为一个更大的bash脚本的一部分:
if [ `packages/TinySVM-0.09/bin/svm_learn 2>&1| grep TinySVM | wc -l | cut -c0-7 | sed 's/^  *//g'` -eq 1 ]

运行脚本后,我得到:

./install.sh: line 219: [: -eq: unary operator expected

219号线位于上方.任何建议修复?

当您使用测试内置函数[和您的左侧表达式返回NUL时,会发生这种情况.您可以通过使用以下方式来解决此问题:
if [ x`some | expression | here` = x1 ]; then

或者,既然你已经在使用bash,你可以使用它更好的(())语法,没有这个问题,并且做:

if (( $(some | expression | here) == 1 )); then

请注意,我还使用$()命令替换反引号“`,因为后者是非POSIX并已弃用

原文链接:https://www.f2er.com/bash/385245.html

猜你在找的Bash相关文章