Ham*_*ner 5 bash command-line bashrc
我通常在 bash 提示符 ( PS1='\u@\h:\W$ ') 中只有当前目录的名称,所以如果我在里面,~/projects/superapp/src/我会得到:
hamish@host:src$
Run Code Online (Sandbox Code Playgroud)
但是,我想在没有完整路径的情况下指示完整路径。我看过人们会看到的截图
hamish@host:~/p/s/src$
Run Code Online (Sandbox Code Playgroud)
如果在上面的示例目录中。那么 PS1 的价值是多少呢?或者失败了,我需要什么脚本.bashrc来制作它?
好吧,我很好奇,所以这是一个解决方案:
\$(function_name)适当位置。举个例子:
short_pwd() {
cwd=$(pwd | perl -F/ -ane 'print join( "/", map { $i++ < @F - 1 ? substr $_,0,1 : $_ } @F)')
echo -n $cwd
}
# later in your .bashrc
PS1="\u \$(short_pwd) \$ "
Run Code Online (Sandbox Code Playgroud)
我希望比我更擅长 Bash 脚本编写的人可以建议清理该函数的方法,但这应该能让您了解如何在提示中使用另一个命令(或 Bash 函数)的输出。另请参阅此处:http://www.linux.org/docs/ldp/howto/Bash-Prompt-HOWTO/x279.html
根据您的评论,我再次查看并意识到我的解决方案需要双引号。如果你用单引号引用这样的函数,那么它根本不起作用。
| 归档时间: |
|
| 查看次数: |
4159 次 |
| 最近记录: |