Я пытаюсь усилить уведомление script. Способ, которым работает script, заключается в том, что я помещал его в длинную рабочую команду оболочки, а затем после завершения длинной работы script запускались всевозможные уведомления.
Например:
sleep 100; my_notify
Было бы неплохо получить код выхода длинного script, проблема в том, что вызов 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
script имеет в нем следующее:
#!/bin/sh
echo "exit code: $?"
echo "PPID: $PPID"
Я ищу способ получить код выхода предыдущей команды, не слишком сильно меняя структуру команды. Я знаю, что, если я изменю его, чтобы больше походить на time
, например. my_notify longrunning_command...
моя проблема будет решена, но мне действительно нравится, что я могу ее подкрепить в конце команды, и я боюсь усложнений этого второго решения.
Можно ли это сделать или это принципиально несовместимо с тем, как работают оболочки?
Моя оболочка zsh
, но мне бы хотелось, чтобы она работала с bash
.