GoGPT Best VPN GoSearch

OnWorks 网站图标

trapposix - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 trapposix

这是命令 trapposix 可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


trap — 陷阱信号

概要


陷阱 n [流程条件...]
陷阱 [行动 流程条件...]

商品描述


如果第一个操作数是一个无符号十进制整数,shell 应将所有操作数视为
条件,并将每个条件重置为默认值。 否则,如果有
操作数,第一个被视为一个动作,其余的被视为条件。

If 行动 is '-', 外壳应重置每个 流程条件 到默认值。 如果 行动 is
空值 (""),shell 应忽略每个指定的 流程条件 如果它出现。 否则,
论点 行动 应由 shell 读取并执行
条件出现。 的行动 陷阱 应覆盖先前的操作(默认值
动作或一个明确设置)。 的价值 “$?”陷阱 动作完成应为
它之前的价值 陷阱 被调用。

条件可以是 EXIT、0(相当于 EXIT)或使用符号指定的信号
名称,不带 SIG 前缀,如信号名称表中所列
在 POSIX.1-2008 的 Base Definitions 卷中定义的头文件, 章节 13, ; 对于
例如,HUP、INT、QUIT、TERM。 实现可能允许带有 SIG 前缀的名称或
忽略信号名称中的大小写作为扩展名。 为 SIGKILL 或 SIGSTOP 设置陷阱
产生未定义的结果。

shell 执行的环境 陷阱 退出时应与
紧接在执行之前的最后一个命令之后的环境 陷阱 在退出被采取。

每一次 陷阱 被调用, 行动 参数应以等效的方式处理
到:

评估 行动

在进入非交互式 shell 时被忽略的信号不能被捕获或重置,
尽管尝试这样做时不需要报告错误。 交互式 shell 可能
进入时忽略重置或捕获信号。 陷阱应保留在给定外壳的位置
直到与另一个明确改变 陷阱 命令。

当进入子shell时,未被忽略的陷阱应设置为默认值
动作,除非命令替换只包含一个 陷阱
命令,当陷阱不需要改变时。 实现可以使用检查这种情况
只有词法分析; 例如,如果 `陷阱`$( 陷阱 -- ) 不要改变陷阱
子shell,例如分配的情况 变量=陷阱 然后使用 $($变量) 可能仍会改变
他们。 这并不意味着 陷阱 不能在子shell中使用命令来设置
新的陷阱。

这个 陷阱 没有操作数的命令应将命令列表写入标准输出
与每个条件相关联。 如果命令在子shell中执行,则
实现不会对命令执行上述可选检查
替换只包含一个 陷阱 命令,没有 陷阱 带操作数的命令
自进入子shell以来已被执行,该列表应包含以下命令
紧接在子shell环境之前与每个条件相关联
进入。 否则,该列表应包含当前与每个相关联的命令
健康)状况。 格式应为:

“陷阱 -- %s %s ...\n", <行动>,流程条件> ......

shell 应格式化输出,包括正确使用引用,以便它
适合作为实现相同捕获结果的命令重新输入到 shell。 为了
例:

save_traps=$(陷阱)
...
评估 “$save_traps”

符合 XSI 的系统还允许对应条件的数字信号编号
到以下信号名称:

1 关注

2 信号

3 信号退出

6 信号传输

9 信号杀手

14 信号

15 期

这个 陷阱 特殊内置应符合 POSIX.1-2008 的 Base Definitions 卷,
部分 12.2, 公用事业 句法 指南.

配置


无。

操作数


请参阅说明。

标准输入


不曾用过。

INPUT FILES


无。

环境 变数


无。

异步 精彩活动


默认。

标准输出


请参阅说明。

斯特德


标准错误应仅用于诊断消息。

OUTPUT FILES


无。

EXTENDED 商品描述


无。

退出 状态


如果陷阱名称或编号无效,则应返回非零退出状态;
否则,将返回零。 对于交互式和非交互式 shell,
无效的信号名称或数字不应被视为语法错误,也不会导致
要中止的外壳。

后果 OF 错误


默认。

这个 以下 部分 旨在 内容丰富。

申请须知 用法


无。

示例


写出所有陷阱和行动的清单:

陷阱

设置一个陷阱,这样 注销 引用的目录中的实用程序 主页 环境
变量在 shell 终止时执行:

陷阱 '"$HOME"/注销' 退出

要么:

陷阱 '"$HOME"/注销' 0

在 INT、QUIT、TERM 和 EXIT 上取消设置陷阱:

陷阱 - INT 放弃 学期 退出

基本原理


实现可能允许小写信号名称作为扩展名。 实现可能
还接受带有 SIG 前缀的名称; 没有已知的历史外壳这样做。 这 陷阱
本卷 POSIX.1-2008 中的实用程序现在在省略
信号名称的 SIG 前缀。 一些 实现不允许前缀,并且
-l 列出没有前缀的信号。

捕获 SIGKILL 或 SIGSTOP 在语法上被一些历史实现所接受,
但它没有效果。 便携式 POSIX 应用程序无法尝试捕获这些信号。

输出格式不是历史惯例。 由于历史输出 陷阱 命令
不可移植(因为数字信号值不可移植)并且必须更改为
变成这样,就有机会以一种 shell 脚本的方式格式化输出
可以用来保存,然后如果需要的话,可以重用陷阱。

KornShell 使用一个 ERR 每当触发的陷阱 -e 会导致退出。 这个
允许作为扩展名,但没有强制要求,因为其他 shell 没有使用它。

有关 EXIT 陷阱环境的文本使某些行为无效
交互式 shell 的历史版本,例如,关闭标准输入
在 0 上执行陷阱之前。例如,在一些历史交互式 shell 会话中
0 上的以下陷阱将始终打印 “--”:

陷阱 '读 富; 回音 “-$foo-”' 0

命令:

陷阱 '评估 " $cmd"' 0

导致shell变量的内容 CMD 在 shell 时作为命令执行
退出。 使用:

陷阱 '$cmd' 0

不能正常工作,如果 CMD 包含任何特殊字符,例如引号或
重定向。 使用:

陷阱 " $cmd" 0

也有效(领先的性格防止出现不太可能的情况 CMD 是一个
十进制整数或以 '-'),但它扩展了 CMD 变量时 陷阱 命令
执行,而不是在执行退出操作时。

未来 如何前往


无。

使用 onworks.net 服务在线使用 trapposix


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad




×
广告
❤️在这里购物、预订或购买——免费,有助于保持服务免费。