这个逻辑表达式如何写?

如果变量x y ,其中只要有一个的值是 1(另一个变量不存在也行) 就输出 at least one variable equal 1.

if [ $x=1 | $y=1 ] ; then  echo "at least one variable equal 1"; fi

上面这样写不行,

x=1
if [ $x=1 | $y=1 ] ; then  echo "at least one variable equal 1"; fi

我故意不对y赋值,我希望那个表达式有输出,at least one variable equal 1

但是

bash: =1: command not found
bash: [: missing `]'

请问,因该如何写这个bash?

阅读 1.6k
1 个回答
if [ "$x" = "1" -o "$y" = "1" ] ; then  echo "at least one variable equal 1"; fi

注意不能去掉空格。比如等号两边的空格。

或者是 -o 不是 |

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进