почему в моем массиве всегда хранятся данные только первого индекса? - PullRequest
0 голосов
/ 30 сентября 2019
while read -r line
  do
   local format=()
   for c in "$line"
     do
      format+=("$line")
     done
  for ((x=0; x< ${#format[@]} ;x++)) # this part just iterate 0 
                                     ##index because whole string 
                                      #stores only 0 index
    do
      echo "${format[$x]} $x "
    done
done <$1

Этот код просто хранит данные в индексе 0, например, у меня есть строка «привет, это мой мир», вся эта строка хранится в индексе 0, но я хочу сохранить каждое слово в строкеотдельно. Как я могу это сделать?

Вот чего я хочу == [привет, это мой мир]

1 Ответ

1 голос
/ 30 сентября 2019

for c in "$line" - поскольку вы указали "$ line", вы перебираете один элемент.

Чтобы сохранить слова строки в массиве, используйте read -a из здесь-строка.

read -ra format <<<"$line"
...