簡體   English   中英

sh scripting:string to array

[英]sh scripting: string to array

我找到了類似的bash答案,但不是sh,所以我問。

我有$ STRING,其中包含“Jun01 Jun02 Jun03 Jun04”。 我想把它放到一個數組中,使$ {ARRAY [0]}為“Jun01”,$ {ARRAY [1]}為“Jun02”等。

我怎樣才能做到這一點? 謝謝。

您無法在標准(Bourne)shell中本機處理數組。

有關詳細信息,請參見此處

C shell(47.5),awk(33.11),Korn shell和一些其他UNIX命令解釋器具有內置陣列支持。 標准的Bourne shell沒有,盡管它的命令行是一個可以使用set(44.19)命令存儲的排序數組 - 並通過$ 1,$ 2等獲取存儲的值。

我會嘗試使用bash(如你所識別的)或更全功能的腳本語言,如Perl (毫無疑問,其他人會建議他們的最愛!)

sh沒有數組,但是下面的hack通常就足夠了:

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

現在,(假設i未設置或0開始), $ARRAY_0的值為Jun01$ARRAY_1Jun02等。

你可以放棄位置參數:它們就像陣列一樣。

set -- $STRING   # no quotes here
echo $1
echo $2
# etc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM