例如,假设我bash, sh, fish, zsh, pwsh
安装了或更多。
如果我开始bash
,切换到sh
会导致以下结果:
user@device:/folder/directory$ sh
$ exit
user@device:/folder/directory$ exit
-- Session actually ends.
我希望能够做到这一点:
user@device:/folder/directory$ switchto fish
user@device /f/directory> switchto zsh
device% exit
-- Session actually ends.
有没有类似的东西不是关闭终端?例如,一个超级shell(可能是shmgr
),它被用作默认shell,并提供这样的命令(可能是switchsh
)。
答案1
您可以使用exec
命令将一个交互式 shell 替换为另一个。例如man bash
(其中exec
作为 shell 内置命令提供)
exec [-cl] [-a name] [command [arguments]] If command is specified, it replaces the shell. No new process is created.
之后会发生什么取决于:如果原始 shell 是登录 shell,则会话将终止。例如,如果 shell 是在终端仿真器中运行的交互式 shell,则终端仿真器应用程序将决定要做什么:您可以在->菜单gnome-terminal
下选择关闭终端、不关闭终端(使其毫无用处 - 没有 shell)或重新启动默认 shell。Edit
Preferences