当前位置: 首页>>技术教程>>正文


如何列出所有变量名称及其当前值?

, , ,

问题描述

如何列出所有变量名称及其当前值?

不仅包括$HOME$PWD等,但您已定义的任何其他。

最佳解决方法

在终端中输入以下命令以打印所有环境变量:

printenv

有关此命令的更多信息,请阅读printenv手册页。


要显示包括”shell variables”的列表,您可以输入下一个命令:

( set -o posix ; set ) | less

这不仅会显示shell变量,还会显示环境变量。

有关与此主题相关的更多信息,请参阅:

次佳解决方法

我知道这个问题相当老旧,但我想我可以添加一些有用的信息。

在上述所有方法中,建议的过程是:

  • 启动一个终端

  • 使用envprintenv或其他方式显示环境变量

这些解决方案的问题是,您正在看到运行在终端中的shell的环境变量。您没有看到运行应用程序的环境变量,例如直接通过图形界面。

例如,如果您使用~/.profile.bashrc.zshenv(取决于您的shell)来修改环境变量,如将路径添加到路径中,则这很明显。

要查看可直接在图形环境中启动的应用程序的环境变量,可以执行以下操作(在Gnome Shell中,我确信在所有其他DE中都有一个等效的方法):

  • 按Alt-F2

  • 运行命令xterm -e bash --noprofile --norc

你现在有一个终端,它没有添加任何环境变量。您可以在这里使用env列出您的所有环境变量:

command-line,bash,environment-variables,ubuntu

很明显,新的shell将会有系统文件添加的环境变量,但是这些变量应该(通过继承)可用于系统中的所有程序。

我发布这个,因为这是我第四次再次搜索这个技巧,检查我的.pam_environment文件。所以现在我会更快地找到它(在这个过程中,我希望帮助其他人……)

第三种解决方法

你可以看到declare内建的所有变量。

declare -p

如果您只对环境变量感兴趣,请使用

declare -xp

运行help declare以查看其他选项。

第四种方法

要使用CTRL + ALT + T列出终端中的环境变量,可以使用env命令。

例如 :

[raja@localhost ~]$ env
XDG_VTNR=1
SSH_AGENT_PID=3671
XDG_SESSION_ID=3
HOSTNAME=localhost.localdomain
IMSETTINGS_INTEGRATE_DESKTOP=yes
GPG_AGENT_INFO=/home/raja/.gnupg/S.gpg-agent:3691:1
GLADE_PIXMAP_PATH=:
TERM=xterm-256color
SHELL=/bin/bash
XDG_MENU_PREFIX=xfce-
DESKTOP_STARTUP_ID=
HISTSIZE=1000
XDG_SESSION_COOKIE=0250277dd805498381e96c05d88068b0-1364679772.845276-1676152201
WINDOWID=65011716
GNOME_KEYRING_CONTROL=/home/raja/.cache/keyring-N3QoQ2
IMSETTINGS_MODULE=none
QT_GRAPHICSSYSTEM_CHECKED=1
USER=raja

等等

希望有所帮助。

第五种方法

在使用compgen的bash中:

compgen -v | while read line; do echo $line=${!line};done  

第六种方法

env是POSIX 7 way

export asdf=qwer
env | grep asdf

示例输出:

asdf=qwer

它只显示导出的变量:non-exported变量通常不被视为”environment variables”。

首选printenv,不是POSIX。两者似乎都没有参数做同样的事情:https://unix.stackexchange.com/questions/123473/what-is-the-difference-between-env-and-printenv

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/119.html,未经允许,请勿转载。