我正在编写一个脚本,它接受决定进一步执行的参数。参数是整个单词 ( script.sh guess) 及其快捷方式 ( script.sh g)。注释行是我找到的第一种方法,第二种方法if是我对它更灵活的看法。不管怎样,我很想听听有经验的人的意见。
另外,我想知道。有没有办法构建正则表达式,以便它只需要gor guess,而不是诸如此类的部分gue?
#if [[ $1 == guess || $1 == g ]]; then
if [[ $1 =~ [guess] ]]; then
printf "You won!"
else
printf "You lost!"
fi
Run Code Online (Sandbox Code Playgroud)
您的首选方法是什么?我似乎无法为大 G 找到合适的术语来找到答案。
case $1 in
[Gg]|[Gg]uess) printf 'You won!\n';;
*) printf 'You lost!\n' >&2;;
esac
Run Code Online (Sandbox Code Playgroud)
它应该匹配Gorg和Guessor guess。虽然[Gg][Uu][Ee][Ss][Ss]可能很极端,但它应该可以工作,在 bash 中还有nocasematchshell 选项。