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 バッシュマニュアル:

${parameter:-word}

設定されていparameterないか空の場合、単語の拡張が置き換えられます。それ以外の場合、parameter値は置き換えられます。

関連情報