正確にどんな機能ですか?」キーワードset
Bashシェルにコマンド割り当てオプションはありますか?
オプション:
set -o keyword
または
set -k
簡単な例だけで理解するのに十分です。
ベストアンサー1
通常、コマンドの環境変数を挿入するには、コマンドの前の名前に値を割り当てます。
VARIABLE=value bash -c 'echo "$1 $VARIABLE"' bash hello
これはbash -c 'echo "$VARIABLE"' bash hello
コマンド環境で実行され、文字列に設定されますVARIABLE
。value
この場合、コマンドはインラインスクリプトの最初のコマンドライン引数と環境変数から印刷hello value
します。hello
value
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
私はこのオプションが「野生で」使用されることを見たことがなく、コマンドが解析される方法を根本的に変更するので、非常に特定の状況でのみほとんど使用されないと仮定します。