我正在寻找带有使用消息的测试表达式。当我在命令行中输入文件(例如 ./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}
如果未设置第一个位置参数(即没有位置参数),则打印 ? 后面的消息。并退出。