ksh 쉘을 사용하는 AiX 서버에서 'exec'로 인해 스크립트가 중단됨

ksh 쉘을 사용하는 AiX 서버에서 'exec'로 인해 스크립트가 중단됨

아래 스크립트는 내 인프라의 모든 서버에서 제대로 실행됩니다.

그러나 최근에 실행을 완료하지 못하고 ksh쉘이 있는 Aix 서버에서 정지된다는 사실을 발견했습니다.

cat myscript.sh
export LOG="./test.log"
echo "Starting"
exec >$LOG 2>&1
echo "Completed"

이 스크립트를 실행하는 방법은 다음과 같습니다.

user1@myhost# . /app/myscript.sh
Output: Starting
<hangs here>

이 스크립트를 AiX, Solaris 및 Linux와 같은 다양한 유형의 운영 체제에서 실행하고 싶습니다.

참고: 이 스크립트는 자동화에 사용하는 원격 서버에서 배치되고 실행됩니다. SSH를 사용하여 원격으로 실행할 때와 로컬로 실행할 때 위와 같이 스크립트가 중단됩니다.

일반적인 해결책을 제안해 주실 수 있나요?

답변1

명령 .에 현재 쉘 세션에 스크립트 내용이 그대로 포함되었습니다. 라인 중 하나가 리디렉션됩니다.표준 출력그리고표준 에러, 따라서 이는 현재 쉘에 적용됩니다. 매달린 것이 아닙니다. 단지 아무것도 표시하지 않는 것뿐입니다.

일반적으로 말하면 .스크립트를 실행하는 방법이 아닙니다. 대신 실행 가능하게 만들고 #!맨 위에 행을 추가하여 실행하는 데 사용된 셸을 식별하고 다음과 같이 호출합니다 ( 명령 /app/myscript.sh없이 )..

관련 정보