我要做的是获取echo的输出,然后进行字符串比较。 例如:
var=echo "Some string"
if [ var = "* string" ]
then
echo true
else
echo false
fi
这是另一次尝试:
if [ (echo "Some string") = "* string" ]
then
echo true
else
echo false
fi
没有任何作用。
答案 0 :(得分:3)
您可以使用命令替换:
var=$(echo "Some string")
if [ "$var" = "* string" ]
或:
if [ "$(echo "Some string")" = "* string" ]
请注意我添加的双引号。它们很重要,因为否则Bash会把事情分成多个单词; [ Some string = "* string" ]
无效。出于这个原因以及其他相关原因,我建议使用[[ ]]
而不是[ ]
,这不是那么严格:
if [[ $(echo "Some string") = "* string" ]]
虽然它实际上听起来像你想要的:
if [[ $(echo "Some string") == *" string" ]]
将执行模式匹配,而不是比较完全相等的字符串。
答案 1 :(得分:0)
尝试:
if [ `echo "Some string"` = "* string" ]; then
(other commands)
fi
或者,
if [ $(echo "Some string") = "* string" ]; then
(other commands)
fi
请注意,您需要在 then
关键字之前使用分号。