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