シェルスクリプトで `:-` とはどういう意味ですか?

シェルスクリプトで `:-` とはどういう意味ですか?

私は素晴らしいシェルスクリプトの終わりにこれを見ましたが、より長いコマンドが欠けているようで、ここでロジックを理解することはできません。

spark ${@:-`cat`}

最後にこんな感じです。このスクリプト。どんなアイデアがありますか?

+遅い場合でも、それを完全なコードスニペットに拡張した人にフラグを立ててください(より良い説明)

答え1

これはパラメータ置換の最初の特別なケースですman bash

${parameter:-word}
デフォルト値を使用します。設定されていないか null の場合、parameter置き換える拡張子です。それ以外の場合、word値は置き換えられます。parameter

言及した場合、ユーザーがコマンドラインに引数を指定した場合は、使用するか、ユーザーが標準入力に引数を入力する必要があります。

答え2

Afaik:-デフォルトでは:$@OR `cat`$@に設定されていません`cat`)を使用してください...

だからいくつかの変数置換項目...

編集:だから何らかのインタラクティブな入力を提供します。

以下は端末テストです。

localhost:~ _druu$ echo ${@:-`cat`}
hello
world
;)
^\hello world ;)
localhost:~ _druu$ 

関連情報