【问题标题】:Bash script 'if' statement that calls a function with parameters使用参数调用函数的 Bash 脚本“if”语句
【发布时间】:2012-03-13 14:17:56
【问题描述】:

我希望在我的 bash 脚本中有一个 if 语句:

if [[ "$v" == "A" || my_func $x $y ]] ; then

但我收到错误“预期的条件二元运算符”。 我尝试在对 my_func 的调用中为参数加上引号,但仍然没有好处。尝试玩 eval,但也没有帮助。

感谢您的帮助。

【问题讨论】:

  • [[ ]] 不是 if 语法的一部分; if 接受一个命令,而 [[ 恰好是一个可以充当命令的内置函数,但并非所有传递给 if 的东西都需要在 [[ ]] 内——只有测试和非数字比较(数字比较应该使用(( )))。
  • 我不明白你为什么在这里使用 [[ 而不是 [。你可以简单地做: if [ "$v" = A ] ||我的函数 $x $y;然后...甚至'test $v = A || my_func $x $y && ...'

标签: linux bash shell


【解决方案1】:

你可以试试:

if [[ "$v" == "A" ]] || my_func $x $y ; then

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-08
    • 1970-01-01
    • 2020-03-30
    • 2015-05-31
    • 1970-01-01
    • 1970-01-01
    • 2014-05-26
    • 2019-08-15
    相关资源
    最近更新 更多