linux – 为什么env不打印PS1变量?
发布时间:2020-12-14 01:27:05 所属栏目:Linux 来源:网络整理
导读:当我们打印PS1的值时,它被设置为: $echo $PS1[u@h W]$ 我们可以使用env命令打印环境变量.为什么不列出PS1变量? $env | grep PS1# No output here 解决方法 因为PS1不是(通常,在您的特定情况下)环境变量. 在bash实例中设置了许多变量,您可以列出: $set
当我们打印PS1的值时,它被设置为:
$echo $PS1 [u@h W]$ 我们可以使用env命令打印环境变量.为什么不列出PS1变量? $env | grep PS1 # No output here 解决方法
因为PS1不是(通常,在您的特定情况下)环境变量.
在bash实例中设置了许多变量,您可以列出: $set BASH=/bin/bash BASHOPTS=checkwinsize:cmdhist:… BASH_ALIASES=() BASH_ARGC=() . . SHLVL=1 SSH_AGENT_PID=853 SSH_AUTH_SOCK=/tmp/ssh-Ofupc03xWIs7/agent.795 TERM=xterm-256color 但其中许多不是环境变量.例如: $echo "$PPID" 1062 $env | grep PPID 您可以使用export将变量添加到环境中.所以PS1可以设置为环境变量: $export PS1 $env | grep PS1 PS1=u@h:w$ 并且可以通过使用declare删除其导出标志来取消导出变量(这将保留变量的值,只是不导出): $declare +x PS1 $env | grep PS1 $echo $PS1 u@h:w$ 或者,更彻底地,通过取消变量: $unset PS1 $env | grep PS1 在bash中,declare可用于打印变量的标志: $declare -p PS1 declare -- PS1="${debian_chroot:+($debian_chroot)}u@h:w$" $export PS1 $declare -p PS1 declare -x PS1="${debian_chroot:+($debian_chroot)}u@h:w$" 注意变量导出后的-x设置. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |