
我只是在學習基礎知識,包括如何聲明和使用變數。有沒有一種簡單的方法來顯示我命名的所有變數的清單? (我透過搜尋找到的所有內容都只討論環境變量,這可能是我正在尋找的內容,但可能不是?)
答案1
跑步declare
本身將為您提供所有環境變數的列表在當前外殼中,包括您自己定義的那些。它還將包含任何功能,除非您使用-p
跳過它們的選項,但會增加一些額外的噪音。
答案2
有 2 種不同類型的變數(實際上比這更多,但在本上下文中只有 2 個):私有變數和匯出變數。
私有變數是可以在 shell(或腳本)中使用但不能由 shell(或腳本)啟動的程式使用的變數。您可以使用、或
取得所有變數的列表,包括匯出的變數。在 bash 中,這三個都做同樣的事情。declare
typeset
set
導出的變數可由 shell 或由它啟動的程式使用。
您可以使用 取得匯出變數的清單env
。
需要注意的一件關鍵事情是在做這樣的事情時:
FOO="bar"
echo "$FOO"
$FOO
是私有/非導出變數。外殼在傳遞到 之前實際上已經擴展$FOO
到。所以實際上被稱為.bar
echo
echo
echo "bar"
您可以透過執行export FOO
, 或 來匯出變數export FOO="bar"
。
此外,您可以透過在命令開頭新增變數來匯出變量,以便僅對程式進行一次呼叫。例如
FOO="bar" cmd1
cmd2
cmd1
將可以訪問$FOO
但cmd2
不會。