是否有方法引用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设置为变量,然后再使用该变量。