変数を宣言して使用する方法など、基本を学んでいます。私が名前を付けたすべての変数のリストを表示する簡単な方法はありますか? (検索で見つけたものはすべて環境変数について話しています。私が探しているものかもしれませんが、そうではありませんか?)
答え1
自体を実行すると、declare
すべての環境変数のリストが表示されます。現在のシェルから、あなたが直接定義した項目を含みます。また、-p
スキップオプションを使用しない限り、機能は含まれませんが、わずかなノイズが追加されます。
答え2
変数には2つのタイプがあります(実際にはそれ以上ですが、このコンテキストでは2つのみ):個人変数とエクスポートされた変数。
プライベート変数は、シェル(またはスクリプト)内で使用できますが、シェル(またはスクリプト)によって開始されたプログラムでは使用できない変数です。または、を使用して、エクスポートした
変数を含むすべての変数のリストを取得できます。 Bashでは、3つすべてが同じことを行います。declare
typeset
set
エクスポートされた変数は、シェルまたはシェルで起動されたプログラムで使用できます。
を使用してエクスポートした変数のリストを取得できますenv
。
注目すべき重要な点の1つは、次のことを行うときです。
FOO="bar"
echo "$FOO"
$FOO
プライベート/エクスポートできない変数です。シェルはに渡される前に実際に拡張されます$FOO
。だから実際に呼び出されます。bar
echo
echo
echo "bar"
export FOO
またはを実行して変数をエクスポートできますexport FOO="bar"
。
また、変数をコマンドの先頭に追加して、プログラムに対して一度だけ呼び出されるように変数をエクスポートできます。例えば
FOO="bar" cmd1
cmd2
cmd1
アクセス可能$FOO
ですが、cmd2
そうではありません。