我在bash shell中编写了以下代码。
它应该接受位置参数,如果它以短划线“-”开头,则应该输入错误消息。
但由于某些原因,if语句总是被跳过。它只有在我输入-*
我得到的印象是修复与“$”有关。
下面是一段代码:

    EXECNAME=$1
    if [ "$EXECNAME" = "-*" ]; then
           echo "error: invalid executable name"
    fi

最佳答案

您可以使用双方括号[[]]而无需在BASH中的glob支持的匹配模式上使用引号:

[[ "$EXECNAME" = -* ]] && echo "error: invalid executable name"

10-06 01:19