2012-07-10 5 views
1

나는 sh에 대해 bash와 비슷한 대답을 찾았으므로 묻습니다.sh 스크립팅 : 배열에 문자열

나는 "Jun01 Jun02 Jun03 Jun04"와 같은 것을 포함하는 $ STRING을 가지고 있습니다. 이 배열을 $ {ARRAY [0]}이 "Jun01", $ {ARRAY [1]}이 "Jun02"등의 배열에 넣고 싶습니다.

어떻게하면됩니까? 고맙습니다.

답변

2

기본적으로 표준 (Bourne) 셸에서는 배열을 기본적으로 처리 할 수 ​​없습니다.

자세한 내용은 here을 참조하십시오.

C 쉘 (47.5), AWK (33.11), Korn 쉘 및 다른 UNIX 명령 인터프리터가 내장되어 어레이 지원. 등

와 $ 1, $ (2)를 통해 값 을 저장 얻을 - 그 명령 줄을 사용하면 세트 (44.19) 명령으로 저장할 수 있습니다 하는 정렬의 배열이 비록 표준 Bourne 쉘은하지 않습니다 나는 bash (당신이 확인한대로) 또는 Perl과 같은 좀 더 완벽한 스크립팅 언어를 시도 할 것입니다. (의심 할 여지없이 다른 사람들이 자신의 즐겨 찾기를 제안 할 것입니다!)

+0

좋아, 내가 배쉬와 함께 할 것 같아. – JDS

1

sh에는 배열이 없지만 종종 다음과 같은 해킹이 적절합니다 :

set $STRING 
for x; do eval "ARRAY_$((i++))='$x'"; done 
이제,

$ARRAY_1 등, Jun02입니다 $ARRAY_0이 값 Jun01을 가지고, (가정 i로 시작하는 설정 해제 또는 0이었다)

1

당신은 멀리 위치 매개 변수를 얻을 수 있습니다 : 그들이있는 거 배열있다.

set -- $STRING # no quotes here 
echo $1 
echo $2 
# etc 
관련 문제