Bash - 如何在 PS1 中缩短用户名

Bash - 如何在 PS1 中缩短用户名

目前我的提示是:

xiaobai@dnxb:/tmp$
root@dnxb:/tmp# 

我想要的提示:

xb@dnxb:/tmp$
rt@dnxb:/tmp# 

我的想法是用户名的别名,所以我尝试重用相同的 uid 来创建一个新用户:

xiaobai@dnxb:~$ sudo useradd -ou 1000 -g1000 -d /home/xiaobai -s /bin/bash xb
xiaobai@dnxb:~$ su
Password: 
root@dnxb:/home/xiaobai# passwd xb
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
root@dnxb:/home/xiaobai# exit
xiaobai@dnxb:~$ su xb
Password: 
xiaobai@dnxb:~$ pwd
/home/xiaobai
xiaobai@dnxb:~$ PS1='\u:\W\$ '
xiaobai:~$ exit
xiaobai@dnxb:~$ id
uid=1000(xiaobai) gid=1000(xiaobai) groups=1000(xiaobai),27(sudo)
xiaobai@dnxb:~$ 

对于 PS1 '\u',它不会更改为 xb。如果是这样,怎么办?

答案1

手动设置有什么问题吗?

PS1="xb@\h:\w\$ "

答案2

如果您想使用相同的 PS1对于两个/所有用户,您可以使用参数扩展从用户名中删除元音:

PS1='${USER//[aeiou]}@\h:\w\$ '

相关内容