测试表达式--使用消息

测试表达式--使用消息

我正在寻找带有使用消息的测试表达式。当我在命令行中输入文件(例如 ./file)时,我需要脚本停止并回显错误。当我输入 ./file test 时,我需要运行该文件并输入 file。我很难使用测试表达消息。到目前为止,我已经有了这个,它有点像我想要的那样,但我需要检查并确保 ./file test 实际上是输入来输入文件的。如果没有正确输入命令,它应该会抛出错误并退出。

   if [$# -eq 0 ]
      then
           echo"error"
      exit 1
   fi

答案1

[是一个命令;[$#不是。您需要将命令与其参数分开:

if [ $# -eq 0 ]; then
    echo "error"   # Here, too
    exit 1
fi

顺便说一句,您可以用特殊的参数扩展替换整个块:

: ${1?error}

如果未设置第一个位置参数(即没有位置参数),则打印 ? 后面的消息。并退出。

相关内容