bash nohup有两个命令

d

我的函数很小,bashrc所以我可以运行一个脚本,并在输出完成后将输出发送到我的电子邮件中。代码如下:

run() {
    [email protected]
    last="${!#}"
    rest="${@:1:($#-1)}"

    (nohup $rest &> $last < /dev/null; mail -s "$rest" "$email" < "$last") &
}

该功能是这样使用的

run ./script.sh arg1 arg2 output

而且似乎在大多数时间都可以正常工作,但是有时即使脚本完成,电子邮件也无法发送。我怀疑这与我关闭服务器终端有关。在这些情况下,由于导致脚本仍在运行,nohup但最终不会发送电子邮件。为了使它正常工作,我非常感谢一些指导。

沃尔伯格

有多种解决方法,但是我认为我建议这样做:

run() {
  [email protected]
  rest="${@:1:($#-1)}"

  nohup bash -c "$rest < /dev/null 2>&1 | mail -s \"$rest\" \"$email\"" &
}

问题是您的nohup命令在分号后结束/dev/null,因此不适用于该mail零件。( ... )引入了子shell,但不是一个外部命令,这样nohup ( ... )是行不通的,这就是为什么bash -c "..."需要(你也可以使用${SHELL} -c " ..."以增加便携性,如果这很重要)。当您将双引号括在另一组引号中时,必须对其进行转义。另外,临时文件不是必需的(除非出于某种原因您想保留它-如果是这种情况,请放回重定向并使用;而不是分隔命令|)。不需要输出文件,您也可以省去该rest=...位,而只需将其称为run script.sh arg1 arg2,但是如果您已经对它的调用散布在其他代码中,那么将其留在其中可能会更简单-您必须弄清楚那一部分...

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

bash nohup有两个命令

来自分类Dev

在bash中显示两个grep命令的结果

来自分类Dev

Ctrl-C与bash中的两个同时命令

来自分类Dev

用bash中的两个命令读取相同的stdin

来自分类Dev

从bash脚本的命令输出中获取两个值

来自分类Dev

如何在bash中交换两个命令?

来自分类Dev

Bash trap命令在两个终端下的行为不同

来自分类Dev

Bash-比较两个命令的输出

来自分类Dev

在Bash中一次执行两个命令

来自分类Dev

Bash 函数在两个分支上运行任意命令

来自分类Dev

在 BASH 中同时运行两个 xterm 命令

来自分类Dev

bash:有什么方法可以用一个命令打印两个文件吗?

来自分类Dev

Linux bash来自两个命令的两个数字之和

来自分类Dev

Bash命令对在两个不同位置具有匹配子字符串的行进行计数

来自分类Dev

这两个bash环境有什么区别?

来自分类Dev

带有两个值的Bash循环

来自分类Dev

如何在find命令的-exec中使用两个bash命令?

来自分类Dev

如何编写Bash脚本打开带有两个不同选项卡式终端的终端并分别执行某些命令的命令是什么?

来自分类Dev

如何编写Bash脚本打开带有两个不同选项卡式终端的终端并分别执行某些命令的命令是什么?

来自分类Dev

可以将这两个bash命令合并为一个吗?

来自分类Dev

Bash:如何将这两个find命令组合成一个?

来自分类Dev

通过Bash中的管道运算符重定向两个命令的输入

来自分类Dev

如何在bash脚本中运行这两个heroku命令?

来自分类Dev

在bash脚本中的两个命令之间切换?

来自分类Dev

Bash-为什么这两个命令在循环中连续而不是并行运行?

来自分类Dev

如何模拟bash脚本中命令的两个连续ENTER键?

来自分类Dev

在bash中评估代表单个管道命令的两个变量的最佳方法是什么?

来自分类Dev

如何执行Bash命令并在失败时执行两个语句?

来自分类Dev

通过bash上的read命令访问两个或多个文件

Related 相关文章

  1. 1

    bash nohup有两个命令

  2. 2

    在bash中显示两个grep命令的结果

  3. 3

    Ctrl-C与bash中的两个同时命令

  4. 4

    用bash中的两个命令读取相同的stdin

  5. 5

    从bash脚本的命令输出中获取两个值

  6. 6

    如何在bash中交换两个命令?

  7. 7

    Bash trap命令在两个终端下的行为不同

  8. 8

    Bash-比较两个命令的输出

  9. 9

    在Bash中一次执行两个命令

  10. 10

    Bash 函数在两个分支上运行任意命令

  11. 11

    在 BASH 中同时运行两个 xterm 命令

  12. 12

    bash:有什么方法可以用一个命令打印两个文件吗?

  13. 13

    Linux bash来自两个命令的两个数字之和

  14. 14

    Bash命令对在两个不同位置具有匹配子字符串的行进行计数

  15. 15

    这两个bash环境有什么区别?

  16. 16

    带有两个值的Bash循环

  17. 17

    如何在find命令的-exec中使用两个bash命令?

  18. 18

    如何编写Bash脚本打开带有两个不同选项卡式终端的终端并分别执行某些命令的命令是什么?

  19. 19

    如何编写Bash脚本打开带有两个不同选项卡式终端的终端并分别执行某些命令的命令是什么?

  20. 20

    可以将这两个bash命令合并为一个吗?

  21. 21

    Bash:如何将这两个find命令组合成一个?

  22. 22

    通过Bash中的管道运算符重定向两个命令的输入

  23. 23

    如何在bash脚本中运行这两个heroku命令?

  24. 24

    在bash脚本中的两个命令之间切换?

  25. 25

    Bash-为什么这两个命令在循环中连续而不是并行运行?

  26. 26

    如何模拟bash脚本中命令的两个连续ENTER键?

  27. 27

    在bash中评估代表单个管道命令的两个变量的最佳方法是什么?

  28. 28

    如何执行Bash命令并在失败时执行两个语句?

  29. 29

    通过bash上的read命令访问两个或多个文件

热门标签

归档