0
배열의 일련의 값을 반복하고 항목에 명령을 실행하는 쉘 스크립트가 있습니다.쉘 어레이에 항목 수집
오류 코드! = 0을 반환하는 명령의 경우 오류 표시 배열에 추가하여 나중에 표시하려고합니다. 질문을 공식화하는 동안이 알아 낸 이후
배열의 일련의 값을 반복하고 항목에 명령을 실행하는 쉘 스크립트가 있습니다.쉘 어레이에 항목 수집
오류 코드! = 0을 반환하는 명령의 경우 오류 표시 배열에 추가하여 나중에 표시하려고합니다. 질문을 공식화하는 동안이 알아 낸 이후
, 여기 내가 사용하는 코드는 다음과 같습니다
#!/bin/bash -u
array=(repo1 repo2 repo3)
errorarray=()
for i in "${array[@]}"; do
cd $i && git pull || errorarray+=($i)
done
echo errorarray has ${#errorarray[@]} items
for e in "${errorarray[@]}"; do
echo "$e failed"
done;
((${#errorarray[@]} == 0));
exit $?
이 하위 명령 중 하나가 실패한 경우 0이 아닌 값을 반환한다의 추가 혜택이있다.
+1. 마지막 단락을 (적절한 개행과 들여 쓰기를 추가하여) 바꿀 것입니다 :'$ {errorarray [@]} "의 e; echo "$ e failed"; 끝난; (($ {# errorarray [@]} == 0)); exit $?' –
@glennjackman이 업데이트되었습니다. 감사합니다. –
'cd $ i'는 양날 무기입니다. '(cd $ i && git checkout) ||을 사용해야 할 수도 있습니다. errorarray + = ($ i)'. '$ i'를 큰 따옴표로 보는 것을 선호하지만 이름에 공백이 없으면 괜찮을 것입니다. –