如何评估bash中的表达式并将值赋给变量?

时间:2011-09-29 02:36:47

标签: bash

我有一个这样的表达式:

if [[ $s == *Mar* ]]; then "match"; else "not"; fi;

如何将其值赋给变量? 命令替换语法不起作用,因为bash尝试评估表达式的结果:

x=$(if [[ $s == *Mar* ]]; then "match"; else "not"; fi;)

给出错误:

-bash: match: command not found  

所以,基本上我想告诉bash评估表达式,但不要将输出视为命令。 我怎么做?

1 个答案:

答案 0 :(得分:4)

if [[ $s == Mar ]]; then "match"; else "not"; fi

不是表达式;它是命令。您可以通过插入适当的match命令将其转换为输出notecho的命令,然后使用反引号或$()捕获输出。

但那是毫无意义的间接。为什么不简单

if [[ $s == Mar ]]; then
  x="match"
else
  x="not"
fi