有没有办法在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
答案 0 :(得分:1)
您可以先将$(returns_a_string.sh)
的标准输出设置为变量,然后再使用。
答案 1 :(得分:1)
调用它的方式不会存储结果,因此您以后无法在echo
调用中调用它。
尝试以下方法:
string="$(returns_a_string.sh)"
case "$string" in
foo|bar) echo "$string" ;;
*) echo "The string returned was not foo or bar" ;;
esac