Синтаксическая ошибка в скрипте BASH - команда readarray + cut

Я пытаюсь разобрать файл, разделенный запятыми, на пару массивов.

Первый массив будет содержать значения из 1-го столбца файла Второй массив будет содержать значения из 3-го столбца файла

Я использую readarry и cut, чтобы попытаться выполнить эту задачу, но я получаю синтаксическую ошибку:

readarray -t VLANs < <( cut -d, -f1 /logs/repository/vlansList.csv )
readarray -t VLANs < <(cut -d, -f1 $1)

Ни один из 2-х подходов выше не работает.

Ошибка:

./ios2NX.sh: line 59: syntax error near unexpected token `<'
./ios2NX.sh: line 59: `         readarray -t VLANs < <( cut -d, -f1 /logs/repository/vlansList.csv)'

Забавно, что ошибка не отображается, если я тестирую скрипт с помощью bash - [script_name]

Я пытался поместить путь в кавычки и двойные кавычки, была выдана та же ошибка.

Ребята, вы знаете, чего мне здесь не хватает, или можете предложить лучший подход, чем readarray + cut? (строки в моем файле содержат пробелы)

Заранее спасибо!

1 ответ

Решение

Проблема в том, что ты пишешь bash но работает с sh,

Если твой шебанг #!/bin/shзамените его #!/bin/bash

Если вы бежите sh yourfileвместо запуска bash yourfile,

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