我正在尝试编写一个脚本,将我的主终端设置为使用 bash shell。我知道 #!/bin/bash 将调用脚本中的所有命令以使用 bash shell 运行,但我想要的是一个专门将我的终端的 shell 更改为 bash 的脚本。
例如:(这是我的终端打开时的样子。)
$
当我想将终端设置为 bash 时,我手动输入 bash 命令并按回车键。
$bash
结果:
[tyg@rooto ~]$
问题是,如果我使用上述命令编写脚本,它可以工作,但脚本中 bash 命令之后的任何命令都无法执行。例如
#!/bin/bash
bash
echo "setting terminal environment to bash"
echo "success"
输出:
[tyg@rooto ~]$
预期输出:(类似这样)
[tyg@rooto ~]$ setting terminal environment to bash
[tyg@rooto ~]$ success
或(像这样)
[tyg@rooto ~]$
[tyg@rooto ~]$ setting environment
[tyg@rooto ~]$ success
我认为以上任何情况都是可以预料到的。为什么脚本中的两个 echo 命令无法执行?是否有解决办法?谢谢
答案1
您的其他命令不会执行,因为bash
直到您执行它才会完成exit
。我不确定您在这里想要实现什么,但是请查看.bashrc
您是否希望命令在启动时始终运行bash
。如果您始终想使用,只需在当前主 shell 的等效文件中bash
写入或在文件中更改默认 shell。bash
/etc/passwd
如果你希望脚本暂时切换到bash
执行某些命令,但又不想与 bash shell 进行交互,你可以考虑bash
使用这里的文件在你的主脚本中。