성공할 때까지 매우 느린 스크립트를 실행합니다.

성공할 때까지 매우 느린 스크립트를 실행합니다.

내 스크립트는 fetch_remote_work.sh네트워크에 연결되어 있기 때문에 매우 느립니다. 작동할 때까지 여러 번 실행해야 합니다.

./fetch_remote_work.sh

while [ $? -ne 0 ]
do
    ./fetch_remote_work.sh
done

이것은 분명히 잘 작동합니다. 그러나 나는 먼저 전화해야 하는 것을 좋아하지 않는다 ./fetch_remote_work.sh. 나는 다음과 같은 다른 언어로 그것을 알고 있습니다, 이있다동안 해라최소한 첫 번째 반복을 실행하는 루프입니다. 그것이 존재한다면 매우 깨끗할 것입니다.

그래서 내 질문은: 내가 한 것보다 더 깨끗한 방법이 있습니까?

답변1

명령 자체를 while구성에 대한 조건부로 사용하십시오.

while ! ./fetch_remote_work.sh; do :; done

답변2

뭔가를 실행하고 싶다면~까지반환 코드가 0입니다.

until [ $RANDOM -eq 42 ]
do 
  echo looking for the answer to life, the universe, and everything
done

(또는 단일 라이너로)

until [ $RANDOM -eq 42 ]; do echo looking for the answer to life, the universe, and everything; done

귀하의 예를 들어:

until ./fetch_remote_work.sh; do :; done

이 루프는 "아무 작업도 수행하지 않습니다"(실행:내장)~까지fetch_remote_work.sh 스크립트는 0을 반환합니다.

답변3

첫 번째 줄을 로 변경하여 false첫 번째 반복에 바람직한 조건을 적용합니다.

관련 정보