다음 링크는 셸에서 루프를 사용하지 않는 것을 권장합니다.
왜 이런거야? 다음은 이 답변을 발견했을 때 우연히 보았던 루프 예제입니다.
find /etc/postinstall -name '*.sh' | while read script
do
echo Running $script ...
$script
mv $script $script.done
done
답변1
쉘 루프가 최선의 접근 방식으로 간주되지 않는 두 가지 애플리케이션 유형을 생각할 수 있습니다. 첫 번째는 데이터 처리입니다. 많은 도구(예: sed
, awk
, perl
등)가 암시적으로 루프를 수행하며 성능이 더 좋습니다. 두 번째는 (예제 코드와 같이) 일부 코드가 파일 세트에 대해 실행되는 경우로, 스위치를 find
사용하면 -exec
문제와 오버헤드가 덜한 상태에서 명령을 실행할 수 있습니다(셸이기도 함). 더 많은 경우가 있을 수 있지만 언급된 두 가지 사례는 이미 유익할 것입니다. 즉, 쉘 루프는 본질적으로 나쁘지 않습니다. 언급된 두 가지와 같은 다른 옵션을 고려해보세요.
답변2
Shell은 끔찍한 프로그래밍 언어이지만 매우 편리합니다. 나는 많은 쉘 스크립트를 작성하고 때로는 루프를 사용합니다. 실행하는 데 몇 시간이 걸리는 스크립트가 있습니다. 다른 것으로 다시 작성해야 합니다. 쉘 스크립트에 루프가 있는 경우, 완전히 관리할 수 없게 되기 전에 스크립트를 다시 작성하는 것에 대해 생각해 볼 때입니다.