Bash syntax error near unexpected token что это
Перейти к содержимому

Bash syntax error near unexpected token что это

Синтаксическая ошибка рядом с неожиданным токеном `('

Когда я использую код ниже в терминале SSH для CentOS, он работает нормально:

Но если я помещаю тот же строчный код в сценарий оболочки (test.sh) и запускаю сценарий оболочки из терминала, он выдаст ошибку, как это

Как я могу решить эту проблему?

Подстановка процессов не определен POSIX, поэтому не поддерживает все POSIX оболочки, только некоторые оболочки , как bash , zsh , ksh88 , ksh93 поддержка.

В Centos системе /bin/sh есть символическая ссылка на /bin/bash . Когда bash вызывается с именем sh , bash переходит в режим posix ( Bash Startup Files — вызывается с именем sh ). В режиме posix, process substitution не поддерживается, вызывает синтаксическую ошибку.

Скрипт должен работать, если вы звоните bash напрямую bash test.sh . Если нет, возможно bash , перешел в режим posix. Это может произойти, если вы начинаете bash с —posix аргумента или переменная POSIXLY_CORRECT установлена ​​при bash запуске:

Или bash построен с —enable-strict-posix-default опцией.

Здесь вам не нужно подменять процессы, вы можете использовать стандартные каналы оболочки:

— это стандартный способ сказать, paste чтобы прочитать данные из стандартного ввода. В некоторых paste реализациях вы можете опустить его, хотя это не стандартно.

Это было бы полезно при вставке вывода более чем одной команды, например:

На системах, которые поддерживают /dev/fd/n , это можно сделать sh с помощью:

bash: syntax error near unexpected token `('

Why is that error coming and what is the solution for that?

3 Answers 3

You should use single quotes ‘ or double quotes » around the URL in this case (and in general):

From now, you should use this method in general when you use a string which contain parentheses as argument in a command. That is because parentheses are used for grouping by the shell such that they are not communicated in any way to a command. So, the bash shell will give you a syntax error:

Не могу запустить bash скрипт вылетает ошибка — syntax error near unexpected token `

Вылетает ошибка
line 2: syntax error near unexpected token ` <
В чем причина?

  • Вопрос задан более трёх лет назад
  • 11702 просмотра

Оценить 2 комментария

  • Facebook
  • Вконтакте
  • Twitter

вот классика
8. Функции
Как почти в любом языке программирования, Вы можете использовать функции для группировки кусков кода более логичным способом или для практического применения волшебного искусства рекурсии.

Объявление функции — это всего лишь запись function my_func < my_code >.

Вызов функции осуществляется точно так же, как и вызов других программ, Вы просто пишете её имя.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *