命令里面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 ] 运行脚本后,我得到:
219号线位于上方.任何建议修复?
当您使用测试内置函数[和您的左侧表达式返回NUL时,会发生这种情况.您可以通过使用以下方式来解决此问题:
if [ x`some | expression | here` = x1 ]; then 或者,既然你已经在使用bash,你可以使用它更好的(())语法,没有这个问题,并且做: if (( $(some | expression | here) == 1 )); then 请注意,我还使用$()命令替换反引号“`,因为后者是非POSIX并已弃用 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |