我试图加强我的通知脚本。脚本的工作方式是,我把它放在一个长时间运行的shell命令后,然后各种通知在长时间运行的脚本完成后被调用。
例如:
sleep 100; my_notify
这将是很好得到长时间运行脚本的退出代码,问题是调用my_notify创建一个新的进程,没有访问$?变量。
比较:
~ $: ls nonexisting_file; echo "exit code: $?"; echo "PPID: $PPID" ls: nonexisting_file: No such file or directory exit code: 1 PPID: 6203
对比
~ $: ls nonexisting_file; my_notify ls: nonexisting_file: No such file or directory exit code: 0 PPID: 6205
my_notify脚本中有以下内容:
#!/bin/sh echo "exit code: $?" echo "PPID: $PPID"
我正在寻找一种方法来获得上一个命令的退出代码,而不改变命令的结构太多。我知道的事实,如果我改变它的工作更像时间,例如。 my_notify longrunning_command …我的问题会解决,但我实际上喜欢,我可以在命令结束时粘,我担心第二个解决方案的并发症。
这可以做,或者是从根本上与shell工作方式不兼容?
我的shell是zsh但我想它使用bash以及。