![Bash를 사용하여 다운로드할 때 오류를 감지하려면 어떤 조건을 확인할 수 있나요?](https://linux55.com/image/81827/Bash%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9C%ED%95%A0%20%EB%95%8C%20%EC%98%A4%EB%A5%98%EB%A5%BC%20%EA%B0%90%EC%A7%80%ED%95%98%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%A4%20%EC%A1%B0%EA%B1%B4%EC%9D%84%20%ED%99%95%EC%9D%B8%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%82%98%EC%9A%94%3F.png)
다운로드가 성공할 때까지 링크를 계속 다운로드하고 싶은데,
#!/bin/bash
while [ some_condition ]; do
curl my_url
# or
vagrant add my_vagrant_url --name localdev --force
done
다운로드 스트림이 비정상적으로 끊어지지 않았는지 감지하는 올바른 방법은 무엇입니까?
답변1
while ! curl my_url; do sleep 0.1; done
오류가 발생하면 컬은 0이 아닌 종료 코드로 종료됩니다.
이해해야 할 중요한 점은 셸에서 형식적 조건문은 [ ... ]
특별한 언어 구성이 아니라는 것입니다. [
은 명령이고 나머지는 ]
해당 매개변수입니다. [
모든 명령에는 종료 상태가 있고 해당 종료 상태가 0이면 조건이 true로 평가되므로 이 명령 대신 어떤 명령이든 사용할 수 있습니다 .