我想检查枯萎选项用户给脚本是允许的其中一个。我读出的最好的手册是:
if [ $format = "flac" ] -o [ $format = "wav" ] -o [ $format = "ape" ]; then
usage
exit 1
fi
它不起作用。也许它缺乏某种分组。
实际上我犯了一个逻辑错误:检查给出的枯萎选项是:flac / wv / ape之一,必须写一个
if ! [ $format = "flac" -o $format = "wv" -o $format = "ape" ]; then
所以这解决了它(Thaks to ziu)。另一种检查选项的方法是:
case $format in
"flac");;
"wv");;
"ape");;
*)
usage
exit 1
esac
这也有效。
答案 0 :(得分:2)
将所有内容保存在同一组中:
if [ $format = "flac" -o $format = "wav" -o $format = "ape" ]; then
答案 1 :(得分:1)
您也可以尝试:
if [ $format = "flac" ] || [ $format = "wav" ] || [ $format = "ape" ]; then
usage
exit 1
fi
答案 2 :(得分:1)
另一种方式:
if [[ ! $format =~ "flac|wav|ape" ]]; then usage; exit 1; fi
编辑:逻辑已经改变
或者,您可以取消if
并使用||
门,如下所示:
[[ $format =~ "flac|wav|ape" ]] || { usage; exit 1; }
回归真实的问题看起来更容易。