mountpoint -q $1 작동하는 방법

mountpoint -q $1 작동하는 방법

나는 마운트 지점이 특정 디렉토리가 마운트 지점인지 확인하는 데 사용된다는 것을 이해합니다. 그러나 내가 이해하지 못하는 것은 if 문과의 조합입니다.

나는 인터넷에서 코드 조각을 테스트했습니다.

#!/bin/bash

if mountpoint -q $1; then
  echo "$1 is mounted"
else
  echo "$1 isn't mounted"
fi

효과가있다! 그러나 그것이 어떻게 작동하는지 잘 모르겠습니다(특히 -q는 조용히 유지한다는 의미입니다). 조건을 대괄호 안에 넣어 보았습니다.

if [[ mountpoint -q $1 ]]; then ...

그러나 이것은 작동하지 않습니다. 그래서 저는 이 if 문이 작동하도록 만드는 내부 메커니즘이 무엇인지 묻고 싶습니다.

답변1

명령 은 mountpoint상태로 종료됩니다디렉터리나 파일이 마운트 지점인 경우 0, 그렇지 않은 경우 0이 아님.

이것이 if바로 명령이 확인하는 것입니다. 명령이 성공적으로 종료되었는지(0 상태) 또는 실패했는지(0이 아닌 상태) 여부(출력 여부에 관계 없음)


마지막 부분을 설명하자면... [[ ... ]]구문은 문자열이 있는지 확인하지만 이 경우에는 다음과 같은 것을 사용하여 출력을 캡처해야 합니다 [[ $(mountpoint $1) ]]. 단, 명령이 해당 명령에서만 출력을 인쇄하는 경우에만 유효합니다. 경우에는 이와 같은 것이 더 현실적이 될 것입니다 [[ $(mountpoint $1 | grep 'is a mountpoint') ]]. 하지만 이건 열등하다... 그냥 직접 써보고 -q종료 상태를 확인하면 되는 거다!

관련 정보