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

jer*_*imo 2 shell scripting bash variable

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
Run Code Online (Sandbox Code Playgroud)

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

if [ -r "$filename" ] && [ -s "$filename" ]; then
    md5sum $filename
else
    echo "$filename cannot be processed"
fi
Run Code Online (Sandbox Code Playgroud)

cuo*_*glm 10

filename=${1:-/etc/hosts}受让人重视/etc/hosts到变量filename如果$1未设置,或者为空。

GNU bash 手册

${parameter:-word}
Run Code Online (Sandbox Code Playgroud)

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