我有以下 Bash 脚本:
function get_cms {
echo "input cms name"
read cms
cms=${cms,,}
if [ "$cms" != "wordpress" && "$cms" != "meganto" && "$cms" != "typo3" ]; then
get_cms
fi
}
但无论我输入什么(正确和错误的值),它都不会再次调用该函数,因为我只想允许这 3 个输入中的 1 个。
我已经尝试过||
, with [ var != value ] or [ var != value1 ] or [ var != value1 ]
,但没有任何作用。
有人能指出我正确的方向吗?
如果主要目的是检查是否在列表中找不到提供的值,也许您可以通过“等于波形符”运算符使用 BASH 中内置的扩展正则表达式匹配(另请参阅这个答案):
if ! [[ "$cms" =~ ^(wordpress|meganto|typo3)$ ]]; then get_cms ; fi
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)