/

Linux指令:env

Linux指令:env

一個快速指南,介紹如何使用env指令運行指令並與環境變量進行互動。

env指令可用於傳遞環境變量,而無需在外部環境(即當前shell)中設置它們。

假設您想要運行一個Node.js應用程序並將USER變量設置給它。您可以運行以下命令:

1
env USER=flavio node app.js

這樣,Node.js應用程序可以通過Node的process.env接口訪問USER環境變量。

您還可以運行清除所有已經設置的環境變量的命令,使用-i選項:

1
env -i node app.js

在這種情況下,您將收到一個錯誤,顯示env: node: No such file or directory,這是因為命令node無法被訪問,因為外殼使用的PATH變量未設置,用於在常用路徑中查找命令。

因此,您需要傳遞到node程序的完整路徑:

1
env -i /usr/local/bin/node app.js

嘗試使用一個擁有以下內容的簡單的app.js文件:

1
2
console.log(process.env.NAME)
console.log(process.env.PATH)

您將看到輸出結果為:

1
2
undefined
undefined

您可以傳遞一個環境變量:

1
env -i NAME=flavio node app.js

輸出結果將是:

1
2
flavio
undefined

刪除-i選項將使PATH在程式內再次可用:

如果不帶任何選項運行env指令,則可以打印出所有環境變量:

1
env

它將返回一個已設置的環境變量列表,例如:

1
2
3
4
5
HOME=/Users/flavio
LOGNAME=flavio
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin
PWD=/Users/flavio
SHELL=/usr/local/bin/fish

您還可以使用-u選項在運行的程式內讓某個變量無法訪問,例如以下代碼會從命令環境中刪除HOME變量:

1
env -u HOME node app.js

env指令可在Linux、macOS、WSL以及任何具有UNIX環境的地方使用。

tags: [“Linux”, “env”, “command”, “Node.js”, “process.env”, “environment variables”]