이것은 bash에서 유효한 "for 루프"입니까?

이것은 bash에서 유효한 "for 루프"입니까?

for 루프에 대해 배우고 있는데 bash온라인에서 다음과 같은 예를 찾았습니다.

for i in 1 2 3 4 5
do
    echo $i
done

나는 1 2 3 4 5많은 "사물"(숫자, 문자열, 변수 등)로 대체했습니다.

myVar="!!"
myVar2="Bye"
for i in 3 15 1 32 6 "Hello World $myVar" 'Hello World in single quotes' Hi $myVar2 $(ls)
do
    echo $i
done

위 코드로 스크립트를 실행하면 예상대로 작동합니다. 하지만 이 모든 "재료"를 함께 혼합하는 것이 어떻게든 효과가 없습니까?

답변1

루프에 제공하는 인수 목록이 유효한 문자열(또는 쉘에 의해 확장될 수 있음)이라고 가정하면, 즉 모든 쉘 확장에 대한 올바른 구문을 얻으면 실제로 제한이 없으며 모든 일이 진행됩니다.

인수 목록이 확장되면 bash는 이를 루프에 공급하고 루프의 코드가 실행되도록 합니다.

이렇게 하는 것은 좋은 습관이 아니며 코드를 이해하기 어렵게 만들지만, 그 자체로 "유효하지 않은" 것은 아닙니다.

관련 정보