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