filename=${1:-/etc/hosts} 和 filename=/etc/hosts 有什么区别?

filename=${1:-/etc/hosts} 和 filename=/etc/hosts 有什么区别?

filename=${1:-/etc/hosts}和 和有什么区别filename=/etc/hosts

例如:

filename=/etc/hosts

if [ -r "$filename" ] && [ -s "$filename" ]; then
    md5sum $filename
else
    echo "$filename cannot be processed"
fi

filename=${1:-/etc/hosts}

if [ -r "$filename" ] && [ -s "$filename" ]; then
    md5sum $filename
else
    echo "$filename cannot be processed"
fi

答案1

filename=${1:-/etc/hosts}如果未设置或为 null,/etc/hosts则为变量赋值。filename$1

GNU bash 手册:

${parameter:-word}

如果parameter未设置或为空,则替换单词的扩展。否则,parameter将替换的值。

相关内容