我在bash shell中编写了以下代码。
它应该接受位置参数,如果它以短划线“-”开头,则应该输入错误消息。
但由于某些原因,if语句总是被跳过。它只有在我输入-*
我得到的印象是修复与“$”有关。
下面是一段代码:
EXECNAME=$1
if [ "$EXECNAME" = "-*" ]; then
echo "error: invalid executable name"
fi
最佳答案
您可以使用双方括号[[
和]]
而无需在BASH中的glob支持的匹配模式上使用引号:
[[ "$EXECNAME" = -* ]] && echo "error: invalid executable name"