1.命令簡介
env 命令用於顯示系統中已存在的環境變量,以及在定義的環境中執行指令。若沒有設置任何選項和參數時,則直接顯示當前系統的環境變量。本文介紹的是 GNU 版本的 env,其它版本(如 POSIX 版)的實現可能會有所不同。
2.命令格式
env [OPTION]... [-] [NAME=VALUE]... [COMMAND [ARG]...]
3.選項說明
-, -i, --ignore-environment
忽略環境變量
-0, --null
輸出環境變量時以空字符(NUL)替代換行符
-u, --unset=NAME
從當前環境中刪除指定的變量
--help
顯示幫助並退出
--version
輸出版本信息並退出
4.常用示例
(1)顯示所有的環境變量。
env
XDG_SESSION_ID=2216652
HOSTNAME=TENCENT64.site
TERM=xterm
SHELL=/bin/bash
...
(2)臨時更改環境變量,使得程序在新的環境變量下運行。例如,使用 C 程序 a.out 用於獲取環境變量 PAHT。實現如下:
// main.c
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
char *pathvar;
pathvar = getenv("PATH");
printf("PATH=%s\n",pathvar);
return 0;
}
編譯生成 a.out,並執行查看環境變量 PATH。
gcc main.c
a.out
PATH=/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
臨時改變環境變量 PATH 後執行 a.out。
env PATH=test ./a.out
PATH=test
(3)查看 env 版本。
env --version
env (GNU coreutils) 8.22
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Richard Mlynarik and David MacKenzie.
參考文獻
[1] env manual