
exit
명령 프롬프트에 명령을 입력할 때마다 확인 메시지를 표시하려고 합니다 . 이를 위해 파일 trap
에서 사용하려고 시도했지만 .bashrc
어쨌든 원래 명령을 실행하므로 트랩이 해결책이 아닌 것 같습니다. 이걸 가질 수 있는 방법이 있나요?
다음은 작업을 완료할 수 없는 bashrc 스크립트 코드입니다.
function _exit() # Function to run upon exit of shell.
{
read -p "${RED}Are you sure? " REPLY
if [[ $REPLY =~ ^[Yy]$ ]]; then
echo -e "${RED}Bye${NC}"
exit 0
else
#I do not know what to do here to not exit
return
fi
}
trap _exit EXIT
답변1
쉘이 zsh
or bash
(모드는 아니지만 sh
) 이면 exit
함수를 만드십시오. 함수는 또는 (POSIX 쉘에서는 아님) exit
의 쉘 내장 기능( 과 같은 특수 기능도 포함) 보다 우선합니다 . 따라서 함수의 이름을 바꾸고 대신 함수 내에서 사용하세요 . 그렇지 않으면 물론 끝없는 재귀가 발생합니다.zsh
bash
exit
command exit
답변2
과부하 기능이 시나리오 exit()
에 맞지 않습니다 ^D
. 그럼, 에 대해 이야기 해 봅시다 trap
.
귀하 else
의 절은 bash를 유지하거나 종료 신호를 무시할 수 있는 것이어야 합니다. 나도 그걸 어떻게 해야할지 모르겠어요.
하지만 지금은 bash를 다시 열 수 있다고 생각합니다.
조항을 다음과 같이 바꾸면 else
:
echo
history -a
bash
그런 다음 프롬프트에서 종료를 취소하면 새 bash가 다시 열리고 이전 bash와 마찬가지로 아무 일도 일어나지 않은 것처럼 보입니다.
이 접근 방식에는 결함이 있습니다. 이전에 입력한 변수 할당이 손실됩니다. 이에 대해 작업할 수 있습니다. 하지만 당신이 이것으로 괜찮다면, 이것이다.
어쨌든 필요에 맞게 이 코드를 수정할 수 있습니다.