加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

命令里面if语句的bash脚本

发布时间:2020-12-15 18:27:19 所属栏目:安全 来源:网络整理
导读:参见英文答案 Why doesn’t my if statement with backticks work properly?4个 我有以下一行作为一个更大的bash脚本的一部分: if [ `packages/TinySVM-0.09/bin/svm_learn 21| grep TinySVM | wc -l | cut -c0-7 | sed 's/^ *//g'` -eq 1 ] 运行脚本后,我
参见英文答案 > 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并已弃用

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读