使用进程替换声明变量时,是否可以捕获子shell的退出代码?

用户2141130

假设set -e对以下所有内容都有效。

这将退出非零:

x=$(false)

但是,这些都不会非零退出:

declare x=$(false)
readonly x=$(false)
local x=$(false)

如果你想声明一个可变变量,你可以这样做x=$(false)但是如果你想要一个只读变量,你必须求助于这样的事情:x=$(false) ; readonly x

但是,如果你在一个函数中并且你想要一个局部的、只读的变量,你不能这样做

x=$(false) ; local -r x

因为您将覆盖全局 x。

您可以local x=$(false)尝试手动检查 x 以查看是否有错误。或者,您可以检查 stderr 上的输出。但是,这些都不适用于所有情况。而且,它们很麻烦。

分配结果时,有没有办法从进程替换中获取退出代码?

威廉·珀塞尔

要检查进程替换的状态,赋值必须是语句执行的唯一操作。在诸如 之类的语句中local x=$(false),返回的值是 local 的状态,通常会成功。要在函数中创建局部只读变量并检查进程替换的分配,您可以执行以下操作:

local x
x=$(false) || echo "assigment of x failed !!" >&2
readonly x

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

捕获子进程的退出状态代码

来自分类Dev

UNIX:在退出时是否在等待子进程?

来自分类Dev

是否可以使用python子进程调用登录shell?

来自分类Dev

收集并行后台进程(子shell)的退出代码

来自分类Dev

使用流程替换时,如何捕获退出代码/正确处理错误?

来自分类Dev

进程替换和退出代码

来自分类Dev

使用Python子进程检测进程是否干净退出

来自分类Dev

进程的退出代码是否可以溢出以获取较小的值?

来自分类Dev

子进程的python退出代码

来自分类Dev

使用模仿 是否可以模拟将lambda作为参数并声明由lambda捕获的变量的方法?

来自分类Dev

捕获n个子进程的退出代码

来自分类Dev

是否可以在不使用子Shell的情况下执行Shell命令替换?

来自分类Dev

是否可以使用PCNTL设置子进程的进程组?

来自分类Dev

进程检查失败时退出Shell脚本

来自分类Dev

是否可以声明局部变量而不覆盖子进程的原始变量?

来自分类Dev

在UNIX Shell中捕获Python进程的退出状态

来自分类Dev

运行一个进程,捕获其输出并退出代码

来自分类Dev

运行一个进程,捕获其输出并退出代码

来自分类Dev

为什么有时Python子进程在运行进程后无法获取正确的退出代码?

来自分类Dev

是否可以增加变量的声明?

来自分类Dev

进程退出时,是否可以让Performance Monitor停止数据收集器集?

来自分类Dev

当父进程退出时,如何让子进程存活?

来自分类Dev

子外壳内的进程替换以设置变量

来自分类Dev

Python使用退出代码-1073741819终止进程

来自分类Dev

是否可以使用getClass()声明Java类变量?

来自分类Dev

不是shell进程的进程是否具有shell变量?

来自分类Dev

在 swift 中声明变量时可以使用通配符吗?

来自分类Dev

R是否可以使用source()避免替换变量?

来自分类Dev

在BASH / SHELL中捕获输出和退出代码

Related 相关文章

  1. 1

    捕获子进程的退出状态代码

  2. 2

    UNIX:在退出时是否在等待子进程?

  3. 3

    是否可以使用python子进程调用登录shell?

  4. 4

    收集并行后台进程(子shell)的退出代码

  5. 5

    使用流程替换时,如何捕获退出代码/正确处理错误?

  6. 6

    进程替换和退出代码

  7. 7

    使用Python子进程检测进程是否干净退出

  8. 8

    进程的退出代码是否可以溢出以获取较小的值?

  9. 9

    子进程的python退出代码

  10. 10

    使用模仿 是否可以模拟将lambda作为参数并声明由lambda捕获的变量的方法?

  11. 11

    捕获n个子进程的退出代码

  12. 12

    是否可以在不使用子Shell的情况下执行Shell命令替换?

  13. 13

    是否可以使用PCNTL设置子进程的进程组?

  14. 14

    进程检查失败时退出Shell脚本

  15. 15

    是否可以声明局部变量而不覆盖子进程的原始变量?

  16. 16

    在UNIX Shell中捕获Python进程的退出状态

  17. 17

    运行一个进程,捕获其输出并退出代码

  18. 18

    运行一个进程,捕获其输出并退出代码

  19. 19

    为什么有时Python子进程在运行进程后无法获取正确的退出代码?

  20. 20

    是否可以增加变量的声明?

  21. 21

    进程退出时,是否可以让Performance Monitor停止数据收集器集?

  22. 22

    当父进程退出时,如何让子进程存活?

  23. 23

    子外壳内的进程替换以设置变量

  24. 24

    Python使用退出代码-1073741819终止进程

  25. 25

    是否可以使用getClass()声明Java类变量?

  26. 26

    不是shell进程的进程是否具有shell变量?

  27. 27

    在 swift 中声明变量时可以使用通配符吗?

  28. 28

    R是否可以使用source()避免替换变量?

  29. 29

    在BASH / SHELL中捕获输出和退出代码

热门标签

归档