我正在尝试编写一个在case语句中使用变量作为模式的 Bash 脚本。但是,我就是无法让它工作。
案例陈述:
case "$1" in
$test)
echo "matched"
;;
*)
echo "didn't match"
;;
esac
我已经尝试过分配$test
as aaa|bbb|ccc
、(aaa|bbb|ccc)
和[aaa,bbb,ccc]
其他几种组合。我还尝试了这些作为案例陈述中的模式:@($test)
, @($(echo $test))
, $($test)
. 也没有成功。
为清楚起见,我希望变量代表多种模式,如下所示:
case "$1" in
aaa|bbb|ccc)
echo "matched"
;;
*)
echo "didn't match"
;;
esac