我需要检查一个输入参数的存在。我有以下的脚本
if [ "$1" -gt "-1" ]
then echo hi
fi
我得到
[: : integer expression expected
如何先检查输入参数1是否存在?
试试吧。
#!/bin/bash
if [ "$#" -eq "0" ]
then
echo "No arguments supplied"
else
echo "Hello world"
fi
另一种检测参数是否被传递给脚本的方法。
((!$#)) && echo No arguments supplied!
注意,((expr ))
会使表达式按照Shell Arithmetic的规则进行评估。
为了在没有任何参数的情况下退出,我们可以说。
((!$#)) && echo No arguments supplied! && exit 1
另一种_(类比)_的方式来表达上述内容,就是。
let $# || echo No arguments supplied
let $# || { echo No arguments supplied; exit 1; } # Exit if no arguments!
help let
说。
let: let arg [arg ...]
。评估算术表达式。
...
退出状态。 如果最后一个ARG估值为0,let返回1;否则let返回0。