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

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

내 스크립트가 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첫 번째 반복이 원하는 조건을 충족하도록 합니다.

관련 정보