shell脚本中的多个逻辑运算符导致问题

时间:2014-02-12 01:27:05

标签: shell

我正在尝试使用多个逻辑运算符和shell脚本编写表达式,如下所示

if [ [a != b] && [ -d "/path/to/directory"] || [a = b] && [ ! -d "/path/to/directory"] ] ; then execute some steps.

当我运行此代码时,我在条件运​​算符']'中出现语法错误。我尝试了不同的方式来做破解者,但无法让它发挥作用。有人可以请帮助。非常感谢!

1 个答案:

答案 0 :(得分:-1)

您可以分离条件表达式并将值保留在变量中,这样可以避免不成对的括号问题:

CON_1=((a != b) && [ -d "/path/to/directory"])
CON_2=((a == b) && [ ! -d "/path/to/directory"])
if CON_1 || CON_2
then
  # execute some steps
fi

尝试使用eclipse插件 ShellEd 作为替代方式。

编辑将语法更改为shell。我假设在这种情况下[]是逻辑测试操作。请问任何人是否正确。