我正在编写一个bash shell脚本,在用户需要将路径作为$ 1变量传递给它的地方运行。如何确定是否缺少$ 1并为其定义默认值?
答案 0 :(得分:9)
您可以检查变量的长度。
if [[ -z $1 ]]; then
echo '$1 is zero-length. Please provide a value!'
fi
如果您只想使用默认值,可以使用大括号扩展。
first_param=${1:-defaultvalue}
${varname:-foo}
构造将使用varname
的值(如果已设置),或使用:-
后面的内容(如果未设置)。
答案 1 :(得分:1)
您的意思是检测是否缺少值,或者路径中的目录是否丢失? 对于前者:
MYPATH=$1
if [[ -z $MYPATH ]]
then
MYPATH=$MYDEFAULTPATH
fi
对于后者:
MYPATH=$1
if [[ ! -d $MYPATH ]]
then
MYPATH=$MYDEFAULTPATH
fi