Ble*_*mer 55 linux shell sh busybox
我想在 sh 提示符(不是 bash shell)中显示当前路径,当前只显示“#”,我尝试引入这个
env PS1="$(whoami)@$(hostname):$(pwd)"
Run Code Online (Sandbox Code Playgroud)
和
set PS1="$(whoami)@$(hostname):$(pwd)"
Run Code Online (Sandbox Code Playgroud)
在/etc/profile
。
但很明显,当目录更改或用户更改时,这不会刷新。请提出一种使这种动态的方法。
mpy*_*mpy 87
双引号中的命令替换"
会立即扩展。这不是您想要的提示。单引号'
将保留替换$PS1
,然后仅在显示提示时扩展。因此这应该有效:
export PS1='$(whoami)@$(hostname):$(pwd)'
Run Code Online (Sandbox Code Playgroud)
如果您想要通常的美元符号和提示末尾的空格,只需$
在末尾添加(无需转义):export PS1='$(whoami)@$(hostname):$(pwd)$ '
小智 15
sh-4.2$ export PS1="\u@\h:\w>"
jenny@serenity:~>cd /usr/local
jenny@serenity:/usr/local>
Run Code Online (Sandbox Code Playgroud)
小智 7
这个命令对我有用。
export PS1="\u@\h: \W:$"
Run Code Online (Sandbox Code Playgroud)
其中
\u = 用户名
\h = 主机名
\W 当前文件夹的名称(非完整路径)
人们可能会考虑通过添加一些颜色来对提示进行拉皮条。例如:
export PS1='\[\e[0;36m\]\u\[\e[0m\]@\[\e[0;33m\]\h\[\e[0m\]:\[\e[0;35m\]\w\[\e[0m\]\$ '
Run Code Online (Sandbox Code Playgroud)