set -e
while true; do echo "test"; sleep 1; done &
echo "done"
ueoa
이것을 실행하면 일단 도착하면 ueoa
(존재하지 않는 임의의 명령) "종료"되지만 계속 실행됩니다 while true; do echo "test"; sleep 1; done
.
이 경우 포그라운드 프로세스도 종료되었는지 어떻게 확인할 수 있나요?
답변1
그렇게:
#!/usr/bin/env bash
trap 'kill $(jobs -p)' ERR
set -e
while true; do echo "test"; sleep 1; done &
echo "done"
ueoa
답변2
#!/bin/bash
set -e
function cleanup()
{
kill $!
}
trap cleanup ERR
while true; do echo "test"; sleep 1; done &
echo "done"
ueoa