我想做的是获得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
什么都不管用。
您可以使用命令替换:
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" ]]
这将执行模式匹配,而不是比较精确相等的字符串。
try:
if [ `echo "Some string"` = "* string" ]; then
(other commands)
fi
或者可替换地,
if [ $(echo "Some string") = "* string" ]; then
(other commands)
fi
请注意,then
关键字之前还需要一个分号。