문제
SFTP를 통해 일부 파일을 전송하기 위해 스크립트를 작성하고 있습니다. 디렉토리를 SSHFS와 장착하여 필요한 디렉토리 구조를 훨씬 쉽게 만들 수 있으므로 로컬 전송으로 전송을 원했습니다. 내가 가진 문제는 네트워크 연결이없는 상황을 처리하는 방법을 잘 모를 것입니다. 기본적으로 SSHFS 명령이 실패했는지 여부를 알 수있는 방법이 필요합니다. 원격 디렉토리를 장착 할 수없는 경우 스크립트를 구제하는 방법이 있습니까?
해결책
그냥 테스트하십시오 sshfs
반환 0 (성공) :
sshfs user@host:dir mountpoint || exit 1
위의 것은 논리적 또는 논리적으로 bash에서 작동하기 때문에 작동합니다 ||
수행합니다 단락 평가. 오류 메시지를 인쇄 할 수있는 더 좋은 솔루션은 다음과 같습니다.
if !( sshfs user@host:dir mountpoint ); then
echo "Mounting failed!"
exit 1
fi
편집하다:
나는 이것이 대부분의 플랫폼에서 잘 작동하는 응용 프로그램의 성공을 확인하는 방법이라고 지적합니다. - 스파 1 분 전에
물론. 조금 더 자세히 설명하려면 : 대부분의 응용 프로그램은 성공시 0을 반환하고 실패시 또 다른 값이 반환됩니다. 쉘은 이것을 알고 있으므로 0의 반환 값을 true로 해석하고 다른 값을 False로 해석합니다. 따라서 논리적 또는 음성 테스트 (느낌표 사용).
다른 팁
디렉토리가 sshfs
산. 위의 예제 사용 실패 :
if !( mountpoint -q /my/dir ); then
echo "/my/dir is not a mountpoint"
else
echo "/my/dir is a mountpoint"
fi
오류: -bash: !( mountpoint -q /my/dir ): No such file or directory
나는 다음과 함께 내 코드를 수정했고 성공했다.
if (! mountpoint -q /my/dir ); then
echo "/my/dir is not a mountpoint"
else
echo "/my/dir is a mountpoint"
fi
제휴하지 않습니다 StackOverflow