警告 - この質問は以前のBashに関するものです。シェルショック脆弱性があり変更されました。
私のbash ENVで同様のものを見ました。
module=() { eval `/usr/bin/modulecmd bash $*` }
この構造はどのように機能しますか?これを何と呼びますか?
私はmodulecmdについて尋ねるのではなく、全体の構成について尋ねます。
答え1
実際にはという関数ですmodule
。以下を実行すると、環境変数に表示されます。出口機能。
$ test() { echo test; }
$ export -f test
$ env | sed -n '/test/{N;p}'
test=() { echo test
}
出口
export [-fn] [-p] [name[=value]]
環境の子プロセスに渡される各名前を表示します。-f オプションが指定された場合、名前はシェル関数を表します。;そうでない場合、名前はシェル変数を参照します。 -nオプションは、各名前がエクスポート用に表示されなくなることを意味します。名前が指定されていない場合、または-pオプションが指定されている場合は、エクスポート名のリストが表示されます。 -pオプションは、入力として再利用できる形式で出力を表示します。変数名の後に=値が続くと、変数の値が値に設定されます。
無効なオプションが指定されている場合、または名前のいずれかが有効なシェル変数名でない場合、または-fで指定された名前がシェル関数でない場合を除き、戻り状態は0です。