스크립트를 실행할 때 첫 번째 x 줄을 무시하시겠습니까?

스크립트를 실행할 때 첫 번째 x 줄을 무시하시겠습니까?

. exec​문제는 처음 몇 줄은 스크립트를 직접 시작할 때마다 실행되어야 한다는 것인데, 이 문제를 해결하기 위해 할 수 있는 일이 있는지 궁금합니다. 예는 다음과 같습니다.

echo "welcome"
read yesno

if [[ $something = etc.. ]]; then
whatever
fi

exec ~/bin/script

이것은 단순화되었지만 이것이 내 스크립트이므로 첫 번째 줄( )을 무시하고 싶습니다 echo. exec추가할 수 있는 옵션이 있나요 ? 즉, 스크립트의 복사본을 만들고 첫 번째 줄만 생략할 수 있지만 이는 좋지 않은 해결책처럼 느껴집니다.

답변1

변수를 사용하면 당연히 이전 프롬프트의 결과를 전달하는 것입니다.

if [[ -z "$yesno" ]]; then
    echo "welcome"
    read yesno
fi

if [[ $something = etc.. ]]; then
whatever
fi

# doing it this way makes it exported into the subprocess
yesno=$yesno exec ~/bin/script

답변2

/run에 임시 파일을 배치해 볼 수 있습니다. 시작 시 해당 파일이 있는지 확인하세요. 그렇지 않은 경우 에코할 수 있으며, 존재하는 경우 이전에 실행한 적이 있습니다. 완료되면 해당 파일을 제거하십시오.

관련 정보