bashの `set -oキーワード`は何をしますか?

bashの `set -oキーワード`は何をしますか?

正確にどんな機能ですか?」キーワードsetBashシェルにコマンド割り当てオプションはありますか?

オプション:

set -o keyword

または

set -k

簡単な例だけで理解するのに十分です。

ベストアンサー1

通常、コマンドの環境変数を挿入するには、コマンドの前の名前に値を割り当てます。

VARIABLE=value bash -c 'echo "$1 $VARIABLE"' bash hello

これはbash -c 'echo "$VARIABLE"' bash helloコマンド環境で実行され、文字列に設定されますVARIABLEvalueこの場合、コマンドはインラインスクリプトの最初のコマンドライン引数と環境変数から印刷hello valueします。hellovalue

set -o keyword(またはset -k)in bash(非標準シェルオプション)を使用すると、コマンドラインのどこにでも割り当てることができます。

$ set -k
$ bash -c 'echo "$1 $VARIABLE"' bash hello VARIABLE=value
hello value
$ bash -c 'echo "$1 $VARIABLE"' bash VARIABLE=value hello
hello value
$ bash -c 'echo "$1 $VARIABLE"' VARIABLE=value bash hello
hello value
$ bash -c VARIABLE=value 'echo "$1 $VARIABLE"' bash hello
hello value
$ bash VARIABLE=value -c 'echo "$1 $VARIABLE"' bash hello
hello value

私はこのオプションが「野生で」使用されることを見たことがなく、コマンドが解析される方法を根本的に変更するので、非常に特定の状況でのみほとんど使用されないと仮定します。

おすすめ記事