当我从 Windows bat 文件执行自动 PuTTY 登录时,登录后命令提示符在 UNIX 终端中仅显示美元符号。但是当我在 PuTTY 中手动登录时,登录后,它会在 UNIX 终端中显示完整的目录名称。
我正在通过以下方式自动登录PuTTY:
putty.exe -ssh [email protected] -pw mypasswordforsomewherecom -m cmd.txt -t
在 cmd.exe 文件中,有一些可以在远程计算机上运行的 UNIX 命令:
mkdir test
/n
sh
我观察到,.profile
当我自动进行 PuTTY 登录时,用户的操作没有执行。但.profile
在手动 PuTTY 登录同一台服务器时,该操作会执行。
答案1
您的脚本正在运行‘sh’shell shell,简单的$
提示对于 sh 来说是完全正常的。
如果您常用的 shell 提示符包含更多信息,那么您可能正在使用bash
或zsh
。 (但也可能是“tcsh”或“fish”或其他内容。)
尝试将脚本的最后一条命令更改为
bash
。尝试将脚本的最后一个命令更改为运行
$SHELL
。(实际上只是 $SHELL。)尝试
-l
向命令添加选项,以强制 shell 以“登录模式”运行。
答案2
您只需要更改默认 shell。通常(就像我处理这个问题时一样),您可能正在寻找 Bash。以用户(shell 仅显示“$”)的身份运行:
sudo chsh <username> -s /bin/bash