예를 들어 다음 스크립트를 사용합니다.
#!/bin/bash
for a in $@
do
echo $a
done
실행: ./script "x y" z
반환:
x
y
z
아니다:
x y
z
왜 그런 겁니까?
공백이 포함된 문자열 인수를 bash에 어떻게 전달합니까?
나는 사용한다 Bash 4.3.33
.
답변1
인용하다 $@
:
#!/bin/bash
for a in "$@"
do
echo "$a"
done
산출:
XY 지
답변2
처리할 때 $@
이를 다음과 같이 단순화할 수 있습니다.
for a
do
echo "$a"
done
"inwords...;"가 없으면 "$@"로 간주됩니다.