我有下面这段 Bash 脚本:
function get_cms {
echo "input cms name"
read cms
cms=${cms,,}
if [ "$cms" != "wordpress" && "$cms" != "meganto" && "$cms" != "typo3" ]; then
get_cms
fi
}
但无论我输入什么(无论正确或错误的值),它都不会再次调用函数,因为我只想允许这三个输入中的1个。
我已经尝试使用 ||
,以及使用 [ var != value ] or [ var != value1 ] or [ var != value1 ]
,但都没有起作用。
有人能指点我正确的方向吗?
case
作为接受的答案,但我想这主要是个人口味问题。请注意,case
可移植回原始Bourne shell,并且当然也适用于现代POSIX shell。也许还可以参考sh和bash之间的区别。 - tripleee