如何在 bash 中暂停 bash

如何在 bash 中暂停 bash

是否可以暂停由另一个 bash 调用的 bash?例如,如果我曾经su成为其他用户,但想暂时切换回自己的用户。再举一个例子,在 SSH 会话中,我可以使用 ~ 快捷键 (~, ^Z) 暂停远程 shell 并返回到我的本地 shell(但这显然是 SSH 功能,而不是 shell)。

bash 拦截 ^Z 来执行其自己的进程控制,因此它必须是一个单独的命令(如果它受支持的话)。但尝试找到它只会产生有关正常进程控制的信息。

答案1

Bash 有一个suspend内置命令:

suspend: suspend [-f]
    Suspend shell execution.

    Suspend the execution of this shell until it receives a SIGCONT signal.
    Unless forced, login shells cannot be suspended.

    Options:
      -f    force the suspend, even if the shell is a login shell

    Exit Status:
    Returns success unless job control is not enabled or an error occurs.

答案2

尝试:

kill -STOP $$

其中$$PID当前 shell 的。

您可以将其绑定到Alt+z例如通过添加~/.inputrc

"\ez": "kill -STOP $$\n"

答案3

不完全是你想要的,但我通常使用屏幕当我做类似的事情时。但是,并非所有系统都默认安装 screen。

相关内容