If ack finds results do this; else do that
本问题已经有最佳答案,请猛点这里访问。
我正在写一个脚本,它将自动执行我的一个更乏味的任务。我已经把所有的东西都记下来了,我可以让代码的各个组件做我想做的事情,但是我在尝试让if语句工作时遇到了麻烦。我想做的是:
1 2 3 4 5 | if [ ack --ignore-case 'foo' ]; then Do this action else Do that action fi |
从现在开始,它总是执行else操作,即使ack参数为true。
谢谢!
放下方括号
1 2 3 4 5 | if ack --ignore-case 'foo' ; then Do this action else Do that action fi |
您不想检查字符串
你应该收到一个警告,告诉你:
1 | -bash: [: --ignore-spaces: binary operator expected |
号
卸下
1 | if ack --ignore-case 'foo'; then |
如果遇到匹配,ACK返回0(成功)退出状态。
虽然它看起来像一个语法结构,但