Linux: Неверный вариант read -a

Я нашел ответ на этот вопрос... Просто хочу предоставить некоторую информацию другим, кто тоже встретил эту проблему...

В моей системе я получил эту проблему из-за того, что я использовал sh main.sh для обработки моей оболочки script и игнорировал разницу между "Bash" и "оболочкой".

Чтобы решить эту проблему, вы можете попробовать изменить режим на исполняемый файл, используя chmod +x и используя ./ для выполнения программы.

Удачи!

Ответ 1

Ошибка:

Illegal option read -a

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

команда chmod +x script.sh не имеет к этому никакого отношения. Он просто предоставляет разрешение на выполнение script.

Вы пытались запустить команду в оболочке Bourne командой sh script.sh, а у Bourne shell read нет опции -a для чтения. Это функция Bash.

Работа с ./ - не совсем ответ. Вы могли бы сказать по крайней мере: запустите его с помощью path_to_the_script, потому что не каждый раз ваш script окажется в текущем каталоге.

Вы можете запустить его с помощью bash main.sh вместо sh main.sh.

Ответ 2

Простой способ покончить с этим - bash script.sh это сработало для меня.

Кроме того, когда я использовал опцию read -d, разрешения не было проблемой, но это было с shell, поэтому я использовал bash script.sh, который добился цели