导出或不导出bash PS1变量

迈克·斯威尼(Mike Sweeney)

我只是花了很多时间阅读登录和交互式shell,以及为什么要在各种配置文件和bashrc文件中设置环境变量,shell函数等。这篇文章中提到要在〜/ .bashrc中设置bash特定的东西,例如提示选项。这使我想知道PS1变量。在我所见过的所有示例中,它们都有类似的内容export PS1=""因为它仅对bash有意义,是否应该将其真正导出到环境中?只是PS1=""在我的〜/ .bashrc中产生了预期的效果,但是我想知道是否丢失了某些东西。

吉勒斯“别再邪恶了”

没错:PS1仅在bash的交互式实例中有意义,因此应在其中设置它~/.bashrc,而不应该将其导出。PS1在其他外壳程序中也是有意义的,但是它具有不同的含义,因为外壳程序之间的快速扩展有所不同。实际上,即使是在bash实例之间,PS1也可能具有不同的含义,因为含义取决于shell选项(至少取决于promptvars)。

PS1.profile1970年代开始向环境中导出是一个回溯到1970年代的时代,当时只有一个使用它的外壳(Bourne外壳)并且没有配置文件。如果您始终使用相同的外壳程序,并且永远不要以不同的方式配置它,那么它今天仍然可以使用。但是,交互启动时未对脚本纯粹设计的所有现代的shells(csh和ksh,bash和的zsh,...)读取配置文件(.cshrc.kshrc.bashrc.zshrc,...),所以上世纪70年代的方法是不再需要。PS1在特定于外壳程序的文件中进行设置和其他特定于外壳程序的设置,而不是将其导出到环境中,可以避免在使用其他无法显示通常提示的外壳程序配置,不同的外壳程序或其他终端时发生问题幻想。环境PS1特定于shell的文件始终有效,而将其设置.profile并导出仅在“简单”情况下有效,因此没有理由不正确地进行操作,但是网络上甚至还有很多糟糕的教程,甚至发行版中的默认配置错误。Cestest vie

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何修改cygwin的PS1以完成git bash?

来自分类Dev

如何从bash $ PS1设置变量

来自分类Dev

在bash PS1中设置变量

来自分类Dev

在bash脚本的开头了解PATH变量导出

来自分类Dev

Bash $ PS1麻烦(ubuntu)

来自分类Dev

bash是否可以在不取消设置的情况下取消导出变量?

来自分类Dev

更新bash函数中的变量并在提示符(PS1)中使用它

来自分类Dev

Cronjob Bash不导出

来自分类Dev

Ubuntu VM上的$ PS1与实际提示不匹配

来自分类Dev

Cronjob Bash不导出

来自分类Dev

bash PS1设置

来自分类Dev

不导出环境变量

来自分类Dev

bash PS1 256色加粗

来自分类Dev

为什么subshell不继承导出的变量(PS1)?

来自分类Dev

如何在PS1变量中插入bash脚本

来自分类Dev

Bash导出变量逐行接收

来自分类Dev

如何从bash $ PS1设置变量

来自分类Dev

bash导出未设置变量

来自分类Dev

Bash PS1不评估变量

来自分类Dev

为什么bash的提示变量称为PS1?

来自分类Dev

为什么PS1导出将不会继续进行子过程?

来自分类Dev

自定义Bash提示(也称为PS1环境变量)的最佳实践是什么?

来自分类Dev

bash $ PS1变量中的参数

来自分类Dev

Bash + Korn的PS1

来自分类Dev

在bash函数中生成PS1

来自分类Dev

bash:导出的函数不可见,但变量是

来自分类Dev

无法通过 SSH 导出 PS1

来自分类Dev

为什么导出命令在 PS1 上不起作用

来自分类Dev

Bash '导出环境变量