列出我的所有變數

列出我的所有變數

我只是在學習基礎知識,包括如何聲明和使用變數。有沒有一種簡單的方法來顯示我命名的所有變數的清單? (我透過搜尋找到的所有內容都只討論環境變量,這可能是我正在尋找的內容,但可能不是?)

答案1

跑步declare本身將為您提供所有環境變數的列表在當前外殼中,包括您自己定義的那些。它還將包含任何功能,除非您使用-p跳過它們的選項,但會增加一些額外的噪音。

答案2

有 2 種不同類型的變數(實際上比這更多,但在本上下文中只有 2 個):私有變數和匯出變數。

  • 私有變數是可以在 shell(或腳本)中使用但不能由 shell(或腳本)啟動的程式使用的變數。您可以使用、或
    取得所有變數的列表,包括匯出的變數。在 bash 中,這三個都做同樣的事情。declaretypesetset

  • 導出的變數可由 shell 或由它啟動的程式使用。
    您可以使用 取得匯出變數的清單env

需要注意的一件關鍵事情是在做這樣的事情時:

FOO="bar"
echo "$FOO"

$FOO是私有/非導出變數。外殼在傳遞到 之前實際上已經擴展$FOO到。所以實際上被稱為.barechoechoecho "bar"


您可以透過執行export FOO, 或 來匯出變數export FOO="bar"
此外,您可以透過在命令開頭新增變數來匯出變量,以便僅對程式進行一次呼叫。例如

FOO="bar" cmd1
cmd2

cmd1將可以訪問$FOOcmd2不會。

相關內容