case语句中的引用表达式匹配



是否有方法引用case语句的命令列表中的表达式匹配?换句话说,与其这样做:

case $(returns_a_string.sh) in
foo) echo "foo" ;;
bar) echo "bar" ;;
*) echo "The string returned was not foo or bar" ;;
esac

我可以这样做吗:

case $(returns_a_string.sh) in
foo|bar) echo "$expression_match" ;;
*) echo "The string returned was not foo or bar" ;;
esac

调用它的方式不会存储结果,因此以后无法在echo调用中调用它。

试试这个:

string="$(returns_a_string.sh)"
case "$string" in
foo|bar) echo "$string" ;;
*) echo "The string returned was not foo or bar" ;;
esac

您可以先将$(returns_a_string.sh)的stdout设置为变量,然后再使用该变量。

相关内容

最新更新