-1

我的目标是从字符串中取出第一个单词并将其分配给 bash 数组,FIRSTWORD{i]然后取出字符串的其余部分并将其放入另一个数组中,REST[i]其中i是整数计数器。

我试过这种方法:(注意:严格来说tmp只是为了调试)

更正:我将索引从string变量中删除。应该是string[1]string[2]

string[1]="One Two Three Four"
string[2]="Five Six Seven Eight"
# etc etc

for ((i=0; i < ${#string[@]}; i++ ))
do
   set -- ${string[i]}
   FIRSTWORD[i]=$1  
   tmp="${*:2}" 
   REST[i]=$tmp
   echo $tmp
   echo ${REST[i]}
done

REST[i]结果等于"Two"tmp等于"one tswo three"

所以我尝试了:

IFS=$'\n';  REST[i]="${*:2}"; IFS=$' ';

没有喜悦。

那么,我该如何完成这个任务呢?

4

1 回答 1

1

找到了我的答案。我变了:

REST[i]=$tmp

REST[i]="$tmp"

现在,读入 rest 的数据保持在一起。

我认为这与 bash 以及命令行拆分和通配数据有关。

于 2013-04-08T19:52:04.307 回答