【发布时间】:2016-10-07 14:10:11
【问题描述】:
我想编写一个小 shell 脚本,当命令提示符过长时它会缩短它。在 bash 中设置 PS1 变量可以正常工作。当我直接在脚本中尝试相同的命令并运行它时,什么也没有发生。
#!/bin/bash
PS1='\u:\W\$ '
我试过 eval "PS1='\u:\W\$ '" 、 export PS1='\u:\W\$ ' 和 exec PS1='\u:\W\$ ' 没有任何结果。
如何在 bash 中实现与直接输入相同的结果?
提前谢谢你
【问题讨论】:
-
顺便说一句,您可能会考虑为此使用 shell 函数而不是脚本。
-
就是说给~/.profile或者~/bashrc添加一个函数?
-
~/.bashrc,而不是~/.profile-- bashrc 为每个交互式 shell 执行,配置文件仅用于登录 shell(在某些操作系统中试图通过以下方式为用户“更容易”)消除差异,但依靠其中之一是不好的形式),并且常规函数不会被子进程继承,因此(与适用于~/.profile的环境变量不同)你不会在任何地方得到它们你需要他们,除非他们在~/.bashrc。 -
...您也可以从
PROMPT_COMMAND调用您的函数,然后它会被自动调用(如果它实际上是在检查终端宽度并决定使用哪个提示)。
标签: linux bash shell command prompt