すべてのシェル変数をどのようにリストできますか?

すべてのシェル変数をどのようにリストできますか?

この問題について読む:zshですべての環境変数を一覧表示するには?、知りたいです。どのようにすべてリストできますか?シェル変数

また、2つの間に違いがありますか?シェル可変合計環境変数はzsh以外のシェルで動作しますか?

私は主にBashとZshに興味がありますが、他のアルコール飲料シェルでこれを行う方法を知っておくとよいでしょう。

答え1

すべてのシェル変数のリスト

bash:使用set -o posix ; set。このposixオプションは、機能定義など、あまりにも多くの情報が印刷されるのを防ぎます。declare -pまた動作します。

zsh:使用typeset

シェル変数と環境変数

環境変数はexec()-edサブプロセスで使用できます(コピーとして、親プロセスが変数を変更しても子環境は更新されません)。非環境変数は、現在実行中のシェルおよび-edサブシェルにのみ適用されますfork()。これらの区別はすべてのシェルに存在します。

答え2

多くの選択肢があります:

印刷環境

指定された環境変数の値を印刷します。 VARIABLE を指定しないと、すべての変数名と値のペアが印刷されます。

環境

env - 変更された環境でプログラムを実行する

出口

環境変数を設定します。環境の子プロセスに渡される各名前を表示します。

-p入力として再利用できる形式で出力を表示します。

名前が指定されていない場合、または「-p」オプションが指定されている場合は、エクスポート名のリストが表示されます。

置く

シェル変数の取得にも便利です。

追加情報(整数、エクスポート)が必要な場合は、以下を使用する必要があります。

組版

出口利点の1つは、出力をすぐにシェルに読み直すことができることです。

最後に、

Compgen-v

オプションに従って可能な完了を表示します。

その値や追加情報なしですべての変数、シェル、および環境を表示します。あなたはする必要があります$VARIABLE_NAMEをエコーし​​ます。変数の値を探します。しかし、少なくともリストは完全です。それが属する強く打つ、いいえ扱いにくい

答え3

zshを使用すると、変数タイプなどのtypesetより多くの情報を提供できます。set必要に応じgrepて、出力を引き続き使用またはフィルタリングできます。環境変数は出力にsed表示されます。exported

答え4

変数の値ではなく、変数をリストするだけです。そのために

env | awk -F '=' '{ print $1 }'

みんな一列に入れてみてください

env | awk -F '=' '{ print $1 }' | tr '\n' ' '

関連情報