Homebrewは私たちeval $(/opt/homebrew/bin/brew shellenv)
に~/.zprofile
。
私はシェルスクリプトに初めて触れました。私は$var
varという変数を参照することを知っていますが、それはすべてです。パスを入れるとはどういう意味ですか$()
?ここに別の主張がありますがshellenv
、それはどういう意味ですか?
ベストアンサー1
$()
はいコマンドの置き換え。角かっこ内のコマンドを実行し、そのコマンドの出力を返します。
プログラムの出力を変数に入れるのによく使われます。例えば
$ month=$(date +%m)
$ echo $month
02
あるいは、あるプログラムの出力を別のプログラムの引数として使用します。
$ printf '%s\n' $(date +%B)
February
(はい、これは単に実行しても同じ出力が生成されるprintf
ため、操作された例ですが、どのように動作するかを示しています。)date +%B
角かっこ内のコマンドは、単一のプログラムから長いパイプラインコマンドまで、必要なだけ単純または複雑にすることができます。たとえば、私はDebianシステムから古いカーネルパッケージを削除するためにしばしば次のコマンドを使用します。
apt-get purge $(dlocate -k | grep '6\.0\.0-[245]')
ところで、バックティック(`)を使用するスクリプトも表示できます。これは従来の理由でサポートされていますが、新しいスクリプトでは使用しないでください。
と一緒に使用すると、シェルはeval
出力を実行します。この場合、run は/opt/homebrew/bin/brew shellenv
たとえば多くのテキストを返し、var=value
現在のeval
シェルで実行してその変数を希望の値に設定します。
help eval
バッシュから:
eval
:eval [arg ...]
パラメーターをシェルコマンドとして実行します。
ARGを単一の文字列に結合し、結果をシェルへの入力として使用し、結果コマンドを実行します。
終了ステータス:コマンドの終了ステータスを返すか、コマンドが空の場合は成功を返します。
/opt/homebrew/bin/brew shellenv
単独で実行して、どの出力が生成されるかを確認してください。