几年前我曾经使用过UNIX,我刚刚开始重新开始使用它。我想知道是否有人可以帮我解决问题。
例如,如果我在bash中,我说chsh --shell /bin/tcsh
之后我会被提示输入我的密码。如果我试着说echo $SHELL
它就不会告诉我我已经改变了贝壳。它仍然告诉我我在bash,而不是C shell。所以我必须退出并重启。一旦我退回它,然后它告诉我在C shell中。
是否有更有效的方法来更换贝壳?一个不需要我登录和退出的人?
提前谢谢。
答案 0 :(得分:0)
chsh(1):更改您的登录shell
使用chsh更改shell后,每次打开终端时都会自动登录到该shell。
如果你想使用不同的shell临时,只需直接运行该shell:“tcsh”,“zsh”等。
如果您想使用特定的shell作为脚本,请使用shebang“#!”。
示例 - shell脚本第一行的以下内容将确保脚本以sh运行(您可以对系统上可用的任何shell执行此操作):
#!/bin/sh
答案 1 :(得分:0)
请务必使用以下方法检查当前的shell:
echo $0
通过这种方式,您将获得正在运行的确切进程(当前shell)。如果您打印$ SHELL,它将返回您登录服务器时将打开的默认shell,除非您需要它不可靠。
ubuntu$ echo $SHELL
/bin/bash
ubuntu$ echo $0
-bash
ubuntu$ sh
\[\e[31m\]\u\[\e[m\]$ echo $SHELL
/bin/bash
\[\e[31m\]\u\[\e[m\]$ echo $0
sh
\[\e[31m\]\u\[\e[m\]$
问候!