“停止的工作”如何。实施?

时间:2019-05-07 01:44:02

标签: bash shell

当我试图退出我的外壳并且我已经停止工作时,它给了我这个:

$ logout
There are stopped jobs.
$ logout
Connection to x closed.

它会阻止我一次退出外壳,警告我,但让我在第二次尝试时退出。

我想针对不同的情况实现相同的行为:

  • 退出时,检查一些情况
  • 如果满足条件,则打印警告并防止退出
  • 如果条件不满足,或者我们已经阻止了退出,请退出

这怎么办?我已经使用trap ... EXIT轻松地执行了检查和警告,但是我不知道如何防止外壳退出(一次)。

使用bash 4.1.2

2 个答案:

答案 0 :(得分:1)

此警告是bash本身的一部分。有关详细信息,请参见the source code

答案 1 :(得分:-1)

来自官方documentation的bash

  

退出交互式登录Shell或非交互式登录Shell执行exit内置命令时,Bash会从〜/ .bash_logout文件(如果存在)中读取并执行命令。

因此您可以在 〜/ .bash_logout 中添加脚本/命令,以在外壳退出时执行。

稍作修改,就可以在程序中实现相同的行为