DIR=${1-${HOME}}は一般英語で何を意味しますか?

DIR=${1-${HOME}}は一般英語で何を意味しますか?

私はbashスクリプトについてもっと学びようとしていましたが、私が見ていたインストールスクリプトの始めにこの文を見つけました。

DIR=${1-${HOME}}

まず、これがスクリプトの始まりなので、$1が何を指すことができるのか理解できません。私は$ 0がスクリプト自体であることを知っています。 $1 とはどういう意味ですか?

第二に、$1からホームディレクトリを引いたものはどういう意味ですか?

ここで何が起こっているのか説明できる人がいるなら、とても感謝します!

ありがとうございます!

(しかし、私が言及した実際のスクリプトはYin Yang Dark Theme Managerのインストールスクリプトです。https://github.com/oskarsh/Yin-Yang/blob/master/install.sh、役立つ場合。 )

答え1

$1、、$2...技術的に「位置パラメータ」と呼ばれるこれらは、スクリプトのコマンドライン引数(またはスクリプト内の関数への引数)を保持します。

${var-value}デフォルト値拡張で、設定されている場合に使用される値$var、それ以外の場合は後に提供される値です-

したがって、${1-${HOME}}(または${1-$HOME})スクリプトの最初のコマンドライン引数が使用されるか、引数がない場合は値が何でも使用されます$HOME。割り当てると、その結果がに割り当てられますDIR

たとえば、参照してください。スクリプトで変数を割り当てるには、「${a:-b}」を使用します。たとえば、およびのバリアントです:-

関連情報