스크립트를 실행할 때 첫 번째 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에 임시 파일을 배치하고 시작 시 해당 파일이 있는지 확인할 수 있습니다. 그렇지 않은 경우, 존재한다면 이전에 실행한 적이 있다는 것을 다시 에코할 수 있습니다. 완료되면 파일을 삭제하세요.

관련 정보