답변:
이에 대한 특별한 구문이 있습니다.
for i do
printf '%s\n' "$i"
done
보다 일반적으로, 현재 스크립트 또는 함수의 매개 변수 목록은 특수 변수를 통해 사용할 수 있습니다 $@
.
for i in "$@"; do
printf '%s\n' "$i"
done
주위에 큰 따옴표가 필요합니다 $@
. 그렇지 않으면 매개 변수가 와일드 카드 확장 및 필드 분할을 겪습니다. "$@"
큰 따옴표에도 불구하고 매개 변수가있는 한 많은 필드로 확장됩니다.
print_arguments () {
for i in "$@"; do printf '%s\n' "$i"; done
}
print_arguments 'hello world' '*' 'special !\characters' '-n' # prints 4 lines
print_arguments '' # prints one empty line
print_arguments # prints nothing
for f; do ...