私のすべての変数を一覧表示

私のすべての変数を一覧表示

変数を宣言して使用する方法など、基本を学んでいます。私が名前を付けたすべての変数のリストを表示する簡単な方法はありますか? (検索で見つけたものはすべて環境変数について話しています。私が探しているものかもしれませんが、そうではありませんか?)

答え1

自体を実行すると、declareすべての環境変数のリストが表示されます。現在のシェルから、あなたが直接定義した項目を含みます。また、-pスキップオプションを使用しない限り、機能は含まれませんが、わずかなノイズが追加されます。

答え2

変数には2つのタイプがあります(実際にはそれ以上ですが、このコンテキストでは2つのみ):個人変数とエクスポートされた変数。

  • プライベート変数は、シェル(またはスクリプト)内で使用できますが、シェル(またはスクリプト)によって開始されたプログラムでは使用できない変数です。または、を使用して、エクスポートした
    変数を含むすべての変数のリストを取得できます。 Bashでは、3つすべてが同じことを行います。declaretypesetset

  • エクスポートされた変数は、シェルまたはシェルで起動されたプログラムで使用できます。
    を使用してエクスポートした変数のリストを取得できますenv

注目すべき重要な点の1つは、次のことを行うときです。

FOO="bar"
echo "$FOO"

$FOOプライベート/エクスポートできない変数です。シェルはに渡される前に実際に拡張されます$FOO。だから実際に呼び出されます。barechoechoecho "bar"


export FOOまたはを実行して変数をエクスポートできますexport FOO="bar"
また、変数をコマンドの先頭に追加して、プログラムに対して一度だけ呼び出されるように変数をエクスポートできます。例えば

FOO="bar" cmd1
cmd2

cmd1アクセス可能$FOOですが、cmd2そうではありません。

関連情報