当我用管道运行时,我怎么能退出bash

时间:2016-01-24 13:49:47

标签: linux bash shell

我运行此命令

$(while true;do echo Something && sleep 0.01;  done;) | cat

现在我无法退出 Ctrl + C 或通过 Ctrl + Z 和{ {1}}无法告诉我它是哪个bash。我怎么能退出那个bash?

修改

我通过找到cwd ps aux缩小了pid,最后杀死了这个过程。There更容易找到它,但在mac上没有pgrep bash| (while read -r line; do lsof -p $line|grep cwd|grep EXPECTED_CWD && echo "GOT $line"; done;)

2 个答案:

答案 0 :(得分:0)

关闭终端可以提供帮助。 如果您使用的是仅限CLI的操作系统,则可以使用Ctrl + Alt + F1键切换到不同的终端。

在那里你可以使用who或ps命令获取进程ID并将其终止。

ps -ef将列出所有进程。 你可以杀死倒数第二个bash进程,因为这将是你执行的最后一个命令。 注意:linux中的进程ID分配总是大于旧的。

答案 1 :(得分:-1)

您可以在命令末尾用&符号执行命令,以便在后台运行此命令

在您的情况下,命令如下:

$(while true;do echo Something && sleep 0.01;  done;) | cat &

它将显示进程ID,您可以在需要时将其杀死