알림 스크립트를 강화하려고합니다. 스크립트가 작동하는 방식은 장시간 실행되는 셸 명령 뒤에 놓은 다음 장시간 실행되는 스크립트가 끝난 후 모든 종류의 알림이 호출된다는 것입니다. 예를 들어다른 스크립트에서 마지막 셸 명령의 종료 코드 받기
는 :
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
도 사용하고 싶습니다.