我想加強我的通知腳本。腳本的工作方式是將它放在長時間運行的shell命令後,然後在長時間運行腳本完成後調用各種通知。在另一個腳本中獲取最後一個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"
我正在尋找一種方式來獲得的退出代碼以前的命令不會更改命令的結構太多。我知道如果我改變它的工作方式更像time
,例如my_notify longrunning_command...
我的問題會得到解決,但我確實喜歡我可以在命令結束時加以解決,並且我擔心這個第二種解決方案的複雜性。
這是可以做到的,還是與根本上不符合貝殼的工作方式?
我的外殼是zsh
,但我希望它能與bash
一起工作。