![USB 드라이브가 설치될 때까지 bash 스크립트를 기다리게 하려면 어떻게 해야 합니까?](https://linux55.com/image/53453/USB%20%EB%93%9C%EB%9D%BC%EC%9D%B4%EB%B8%8C%EA%B0%80%20%EC%84%A4%EC%B9%98%EB%90%A0%20%EB%95%8C%EA%B9%8C%EC%A7%80%20bash%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EA%B8%B0%EB%8B%A4%EB%A6%AC%EA%B2%8C%20%ED%95%98%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
펜 드라이브가 CPU에서 인식되면 실행되는 줄이 포함된 bash 스크립트가 있지만 cd /run/media/Username/121C-E137/
설치 프로세스가 완료된 후에만 실행해야 합니다. 현재 이 줄은 펜 드라이브가 마운트되기 전에 실행되며 잘못된 디렉터리 오류를 반환합니다.
답변1
간단한 해결책은 스크립트가 주기적으로 디렉터리를 확인하고 디렉터리가 존재하는 경우에만 계속 진행하도록 하는 것입니다.
PENDRIVE='/run/media/Username/121C-E137'
while [ ! -d "$PENDRIVE" ]; do
sleep 10
done
cd $PENDRIVE
...
답변2
아래에서는 pendrive 디렉토리가 나타나는지 확인하여 설치되어 있는지 확인합니다./proc/mounts
pendrive='/run/media/Username/121C-E137'
while ! grep -q -s "$pendrive" /proc/mounts; do
sleep 10
done
cd "$pendrive"
~/run/media/Username/121C-E137
이것이 원하는 것이 아닌 것처럼 흔하지 않은 가능성을 고려해야 하는 경우 다음과 같이 수정할 수 있습니다.
pendrive='/run/media/Username/121C-E137'
while ! grep -s "$pendrive" /proc/mounts | awk '{print $2}' | grep -q -s -x "$pendrive"; do
sleep 10
done
cd "$pendrive"