linux – 为什么env不打印PS1变量?

linux – 为什么env不打印PS1变量?,第1张

概述当我们打印PS1的值时,它被设置为: $echo $PS1[\u@\h \W]\$ 我们可以使用env命令打印环境变量.为什么不列出PS1变量? $env | grep PS1# No output here 因为PS1不是(通常,在您的特定情况下)环境变量. 在bash实例中设置了许多变量,您可以列出: $setBASH=/bin/bashBASHOPTS=checkwinsize:cm 当我们打印PS1的值时,它被设置为:

$echo $PS1[\u@\h \W]$

我们可以使用env命令打印环境变量.为什么不列出PS1变量?

$env | grep PS1# No output here
解决方法 因为PS1不是(通常,在您的特定情况下)环境变量.

在bash实例中设置了许多变量,您可以列出:

$setBASH=/bin/bashBASHOPTS=checkwinsize:cmdhist:…BASH_AliASES=()BASH_ARGC=()..SHLVL=1SSH_AGENT_PID=853SSH_AUTH_SOCK=/tmp/ssh-Ofupc03xWIs7/agent.795TERM=xterm-256color

但其中许多不是环境变量.例如:

$echo "$PPID"1062$env | grep PPID

您可以使用export将变量添加到环境中.所以PS1可以设置为环境变量:

$export PS1$env | grep PS1PS1=\u@\h:\w$

并且可以通过使用declare删除其导出标志来取消导出变量(这将保留变量的值,只是不导出):

$declare +x PS1$env | grep PS1$echo $PS1\u@\h:\w$

或者,更彻底地,通过取消变量:

$unset PS1$env | grep PS1

在bash中,declare可用于打印变量的标志:

$declare -p PS1declare -- PS1="${debian_chroot:+($debian_chroot)}\u@\h:\w\$"$export PS1$declare -p PS1declare -x PS1="${debian_chroot:+($debian_chroot)}\u@\h:\w\$"

注意变量导出后的-x设置.

总结

以上是内存溢出为你收集整理的linux – 为什么env不打印PS1变量?全部内容,希望文章能够帮你解决linux – 为什么env不打印PS1变量?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1027993.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存