Сценарий Bash: синтаксическая ошибка около неожиданного токена `('[closed]

Я запускаю сценарий в Bash на Mac и пытаюсь разделить строку с разделителем, являющимся пробелом, в массив. Я выполняю следующую команду:

array = ($(echo "$string" | tr ' ' "\n"))

, которая возвращает «неожиданную '('» ошибку. Я пробовал несколько решений, включая

  • , экранирование круглых скобок
  • ] заключив команду
  • в кавычки, убедившись, что пробел не вызывает ошибку
  • , убедитесь, что мой заголовок имеет вид #! / bin / bash
0
задан 23 June 2018 в 13:04

1 ответ

В первую очередь, присвоения в сценариях оболочки не должны содержать пробелы между левой стороной = (имя переменной/массива) и правая сторона оператора присваивания =. Что касается преобразования строки для выстраивания Вы не должны заменять пробелы новыми строками явно, просто использовать в своих интересах автоматическое разделение слова, которое происходит, когда неупомянутые переменные называют:

$ string='This is a hello world string'
$ array=( $string  )
$ echo ${array[3]}
hello
$ echo ${array[4]}
world
5
ответ дан 29 October 2019 в 02:00

Другие вопросы по тегам:

Похожие вопросы: