Пытался запустить некоторые функции bash, но постоянно сталкивался с синтаксической ошибкой: "(" неожиданно. Я пытался снять скобки, скобки и т. Д. И т. Д. ..., похоже, ничего не работает.
$ bash --version
GNU bash, version 4.3.46(1) release
#!/bin/bash
function hello () {
echo "Hello world"
}
Ответы:
Если вы запускаете скрипт с помощью
sh hello.sh
, интерпретирующая оболочка не будет той, что указана в строке shebang, но/bin/sh
будет использоваться. В случае Debian и Ubuntu по умолчанию это будетdash
.Таким образом, чтобы правильно запустить скрипт с помощью a
bash
, используйте одно из следующих.или
В качестве альтернативы вы также можете установить
bash
как/bin/sh
.источник
Первый:
Синтаксическая ошибка из-за (). Удалить () из файла следующим образом:
или вы можете просто запустить следующую команду, чтобы отредактировать файл для вас:
Теперь вы сможете запустить файл с желаемым результатом.
Альтернативно :
Вы можете добавить строки 2, 3 и 4 в ваш
~/.bashrc
файл.Помните, не используйте
sudo
для редактирования вашего~/.bashrc
файла!После добавления строк в файл выполните следующую команду, чтобы перезапустить bash или «исходный» файл .bashrc:
Теперь вы должны быть в состоянии запустить команду,
hello
и «Hello world» должен напечатать в терминале.Также:
Вы можете отредактировать файл, чтобы сказать это вместо этого:
и назовите файл
hello
и сохраните файл в/usr/local/bin
.Сделав все это, сделайте файл исполняемым, выполнив следующую команду:
Теперь вы должны быть в состоянии запустить команду,
hello
и «Hello world» должен напечатать в терминале.В заключение:
Третий вариант - добавить следующую строку в ваш
~/.bashrc
файл:Затем создайте файл .bashrc с помощью следующей команды:
источник
GNU Bash - это оболочка, используемая по умолчанию в терминалах Ubuntu. Однако, когда сценарии выполняются при загрузке системы, используется тире, так как это тире / bin / sh.
Не сработает ->
Будет работать ->
Задача решена
источник
Согласно вашему сценарию:
источник