English 中文(简体)
如何在Bash中将输入之前的文本隐藏为$符号?
原标题:
  • 时间:2009-02-16 05:56:52
  •  标签:

我在.bashrc中有这个;

PS1= I'm sorry, there is no context or text for me to translate. Please provide the text you want me to translate. translates to "PS1= I'm sorry, there is no context or text for me to translate. Please provide the text you want me to translate." in Chinese.

然而,我在终端中仍然看到这个:

mas-macbook:一些/路径 masI'm sorry, there is no context or text for me to translate. Please provide the text you want me to translate.

我想要

I'm sorry, there is no context or text for me to translate. Please provide the text you want me to translate.

最佳回答

PS1 应该在你进入 .bashrc 文件之前就已经导出了,至少对于登录 shell 而言。在那种情况下,设置 PS1 应该只会覆盖该值,而不改变其导出状态。

需要记住的一件事是,Bash本身不会在登录shell中运行您的.bashrc文件。实际的执行顺序是:

  • /etc/profile, if there.
  • first of ~/.bash_profile, ~/.bash_login or ~/.profile.

我非常确定,如果您希望.bashrc在登录 shell 中运行,则必须从上述其中一个脚本中获取它。

例如,/etc/profile 可能会调用 /etc/profile.local 或者在 /etc/profile.d/ 目录中的所有脚本。同样,如果存在以下内容,我的 .bash_profile 也会调用它们。

  • /etc/bash.bashrc
  • ~/.bashrc

使用下面的代码片段:

if [ -e /etc/bash.bashrc ] ; then
    source /etc/bash.bashrc
fi
if [ -e "${HOME}/.bashrc" ] ; then
    source "${HOME}/.bashrc"
fi

当我在我的.bashrc中更改PS1并且回显"hello",但在.bash_profile中注释掉其来源时,当我登录时,提示不会更改(也不会打印字符串)。当我取消注释来源时,我登录时会同时获得打印的字符串和更改的提示符。

确保您的.bashrc文件被用于登录shell,将echo hello语句放在设置PS1之后,然后登录以进行检查。

如果在登录时被称为,您可以从您的 shell 执行 "export -p" 来获取所有导出变量的列表 - 确保 PS1 前面有一个 "declare -x"。如果没有,只需更改您的 .bashrc 将其导出即可。

export PS1= $ 

如果已经导出,那么在您的set语句之后有些东西正在改变它。在这种情况下,您需要实际查看登录执行路径,以查看在您获得控制之前调用了什么。

问题回答

我觉得你需要使用export关键字:

export PS1= $ 

You may have to escape the $ symbol. This works in my system... PS1="$"

如果那不起作用,请运行命令echo $PS1并告诉我们结果。您可能还需要发送.bashrc文件-您可能在包含全局/ etc / bashrc文件之前设置了PS1变量。如果是这种情况,全局文件将覆盖该变量。您需要在包含/ etc / bashrc文件之后设置PS1变量。





相关问题
热门标签