Linux 为什么登录不同的shell时会有不同的提示

Linux 为什么登录不同的shell时会有不同的提示,linux,bash,shell,ubuntu,sh,Linux,Bash,Shell,Ubuntu,Sh,我正在尝试使用shell脚本创建一个用户 以下是我尝试过的: password="tes7" username="tes7" pass=$(perl -e 'print crypt($ARGV[0], "password")' $password) useradd -m -p "$pass" "$username" 该脚本应该可以工作,但问题是,当我从ssh登录时,第一个文本中没有任何细节,只有

我正在尝试使用shell脚本创建一个用户

以下是我尝试过的:

password="tes7"
username="tes7"
pass=$(perl -e 'print crypt($ARGV[0], "password")' $password)
useradd -m -p "$pass" "$username"
该脚本应该可以工作,但问题是,当我从
ssh
登录时,第一个文本中没有任何细节,只有
$

但如果我像这样手动操作,而不是使用shell

adduser username
Adding user `username' ...
Adding new group `username' (1001) ...
Adding new user `username' (1001) with group `username' ...
Creating home directory `/home/username' ...
Copying files from `/etc/skel' ...
New password: fill this in manually
Retype new password: fill this in manually

当我使用
ssh
登录时,会有一个正常的第一次提示
tes5@ns-jazuly:~$

如果你不知道你在巫婆壳里是谁,你可以随时与她核实

echo $SHELL
/bin/bash
在bash(/bin/bash)中,可以通过更改系统变量PS1来设置提示符。默认情况下,此变量为:

echo $PS1
${debian_chroot:+($debian_chroot)}\u@\h:\w\$

you can change it for example to:
PS1='whatever'
但是你可以把它设置成你喜欢的。如果你觉得无礼,你也可以使用ANSI/VT100控制序列

在sh(/bin/sh)中,正如您可能担心的那样,您可以用相同的方式检查提示符(我作为root用户这样做)


作为用户,您将获得$

第二个示例应用一些默认值,这些默认值不是您使用
useradd设置的。特别是,
adduser
正在使用
/bin/bash
作为默认shell,但是
useradd
默认为
/bin/sh
。将
-s/bin/bash
添加到你的useradd命令。我尝试这样做
useradd-m-p-s/bin/bash“$pass”“$username”
,但我收到了帮助文本。@jordanm哦,我收到了,谢谢。。写下答案,稍加解释,这样我就能学会。。
echo $PS1
#