나는 bash 스크립트를 작성 중이므로 errexit
을 설정 했으므로 명령이 0 종료 코드를 리턴하지 않으면 (즉, 명령이 성공적으로 완료되지 않은 경우) 스크립트가 종료되도록 설정됩니다. 이것은 나의 bash 스크립트가 튼튼하다는 것을 확인하는 것이다.Bash 스크립트 - 장치를 마운트 해제했으나 마운트되지 않은 경우 실패하지 않습니까?
일부 파일 시스템을 마운트하고 일부 파일을 복사하고 마운트 해제해야합니다. 나는 시작하기 전에 umount /mnt/temp
을 끼워 넣기 때문에 아무것도하지 않기 전에 언 마운트한다. 그러나 마운트되지 않은 경우 umount가 실패하고 스크립트가 중지됩니다.
umount --dont-fail-if-not-mounted /mnt/temp
할 수 있습니까? 장치가 마운트되지 않은 경우 0을 반환합니다. rm -f
처럼? 장치가 장착되지 않은 경우 귀하의 umount
반환, 당신이 할 수있는 일이라고 가정
umount .... || /bin/true
및 출력을/dev/null로 리디렉션합니다. umount ...>/dev/null 2> & 1 ||/bin/true – knittl
글쎄, 그것은 상황에 맞는 일입니다. 스크립트를 계속하고 싶지만 로그 메시지에 오류 메시지를 남기는 것은 쉽습니다. –
/bin/true 대신 새로운 의사 명령어':'(쉘 내장 명령)를 사용하여 좀 더 빠르게 만들 수 있습니다. 즉, "umount .... || :'"를 사용하십시오. –