我有一个简单的案例,如
case "$1" in
-b*) myfunction exit 0;;
-B*) echo "Invalid!" >&2 exit 1;;
esac
我想要什么基本上是当用户输入参数使用" b "时,它会从myfunction中执行一些操作。否则,如果用户使用" B "输入,则会输出错误并退出程序。
然而,真正发生的是当用户输入" B "时,它会打印
Invalid! exit 1
而不是
Invalid!
此外,它的退出值为" 0 "而不是" 1 "。有谁知道我做错了哪一部分?
答案 0 :(得分:2)
替换你的剧本
echo "Invalid!" >&2 exit 1
通过
echo "Invalid!" >&2; exit 1