Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我在 bash shell 中编写了以下代码。它应该采用位置参数,如果它以破折号“-”开头,则应该输入错误消息。
但由于某种原因,if 语句总是被跳过。仅当我按字面输入 -* 时它才会起作用
我的印象是修复与“$”有关。
这是代码片段:
EXECNAME=$1 if [ "$EXECNAME" = "-*" ]; then echo "error: invalid executable name" fi
您可以在 BASH 中使用双方括号[[而不]]在匹配模式上使用引号来支持 glob:
[[
]]
[[ "$EXECNAME" = -* ]] && echo "error: invalid executable name"
为了匹配 glob 模式,我更喜欢使用case:
case
case $EXECNAME in -*) echo "error: invalid executable name" esac