我有一个我没有sudo的主人。它是用ksh设置的,我太习惯了bash而且chsh不起作用。所以我把/ bin / bash作为系统中.profile的第一行。
结果是,当我登录到这个系统时,它会自动让我进入bash。但是,当我退出shell时,并不奇怪我在ksh中登陆。
要避免这种伎俩吗?
答案 0 :(得分:7)
使用exec
将当前进程(shell)替换为新进程(shell)。
答案 1 :(得分:2)
我建议采取两个步骤:
if [ $SHELL != /bin/bash ]
then SHELL=/bin/bash exec /bin/bash --login
fi
或者,您可以将其压缩为:
[ $SHELL != /bin/bash ] && SHELL=/bin/bash exec /bin/bash --login
然后,您可以在此之后放置剩余的Bash配置文件。请注意,可能你没有把一个shebang放在第一行 - 这会让事情变得混乱。此外,在测试时,请确保打开第二个连接(窗口),以便调整问题。被错误的个人资料锁定是很烦人的。
答案 2 :(得分:0)
您可以像这样编写一个名为myexit
的脚本:
kill -1 $(ps | sed 1d | awk '{print $1}')
它将信号挂起(SIGHUP)发送到连接到该终端的进程。 并且不会影响nohup启动的任何过程。