Bash 스크립트에서 종료를 사용하되 터미널을 닫지 마세요.

Bash 스크립트에서 종료를 사용하되 터미널을 닫지 마세요.

데스크톱 검색 도구를 쉽게 사용할 수 있도록 쉘 함수를 만들었습니다 baloosearch. 이유 때문에 이것을 함수로 만들었습니다.

이제 이 함수에서는 명령, s 또는 조건을 exit사용하여 루프를 종료 해야 합니다 . 문제는 명령이 실행될 때 터미널 창도 종료된다는 것입니다.ifcaseexit

exit내 질문은 터미널 창을 닫지 않고 이것을 사용할 수 있는 방법이 있습니까 ?

이것을 쉘 스크립트로 사용할 때는 문제가 없지만 BASH 함수로 실행하려면 필요합니다...

답변1

1.5분 동안 조사한 후에 이제 스스로 답변할 수 있습니다.

해결책은 다음과 같습니다.반품그만두는 대신. 이 방법으로 함수를 종료하면 터미널이 닫히지 않고 셸 세션이 열린 상태로 유지됩니다.

답변2

복귀나 인터럽트 대신 종료해야 하는 경우에는 하위 터미널 내에서 명령을 실행할 수 있습니다. $(cmd)그런 다음 종료하면 하위 터미널이 종료됩니다. 반환 값이 실행된다는 점을 기억하세요. 따라서 echo -e "Result from cmd:\n$(cmd)"출력만 원한다면 그런 것으로 둘러쌀 수도 있습니다. 일반적 return으로 충분하지만 때로는 스크립트를 소유하지 않는 경우도 있습니다.

관련 정보