사용자 정의 변수의 "$@" 확장

사용자 정의 변수의 "$@" 확장

"와 같은 (Bourne Shell) 변수를 만들려고 합니다.$@" 그래서 여러 단어를 생성하며 그 중 일부는 공백을 유지합니다. 변수를 여러 가지 방법으로 정의하려고 시도했지만 여전히 작동하지 않습니다.

#!/bin/sh

n=\"one\ two\"\ three
for i in "$n"; do
echo $i
done

참조된 변수를 ", I get this like"로 바꾸면 스크립트가 one two먼저 출력되고 다음 반복에서 출력 되도록 변수를 정의하고 싶습니다.three$@” 그리고 'one two' three매개변수로 전달됩니다.

예"$@"그냥 마술?

답변1

따라서 Bourne Shell(IIRC)은 어레이를 지원하지 않습니다. 계속해서 "$@"을 사용할 수 있습니다.

set -- "one two" three
for i in "${@}" ; do
    echo "$i"
done

산출:

one two
three

AIX 7.1 bsh에서 테스트되었습니다.

관련 정보