この問題について読む: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' ' '