我正在寻找带有用法消息的测试表达式。当我在命令行中输入一个诸如 ./file 之类的文件时,我需要脚本停止并回显错误。当我输入 ./file test 我需要运行文件并输入文件。我很难使用测试表达式消息。到目前为止,我已经有了这个,它有点像我想要的那样,但我需要检查并确保 ./file test 实际上是输入来输入文件的。如果它没有在命令中正确输入,它应该吐出一个错误并退出。
if [$# -eq 0 ]
then
echo"error"
exit 1
fi
Run Code Online (Sandbox Code Playgroud)
[
是一个命令;[$#
不是。您需要将命令与其参数分开:
if [ $# -eq 0 ]; then
echo "error" # Here, too
exit 1
fi
Run Code Online (Sandbox Code Playgroud)
顺便说一句,您可以用特殊的参数扩展替换整个块:
: ${1?error}
Run Code Online (Sandbox Code Playgroud)
如果第一个位置参数未设置(即没有位置参数),则打印 ? 并退出。