Ubuntu bash functions..syntax error: “ (” or “} ” неожиданный

Пытаясь запустить некоторые функции bash, но продолжайте сталкиваться с синтаксической ошибкой: «(« неожиданно. Я попытался удалить скобки, скобки и т. д. и т. д. ... ничего не работает.

$ bash --version
GNU bash, version 4.3.46(1) release
#!/bin/bash
function hello () {
echo "Hello world"
}
1
задан 9 October 2016 в 16:34

3 ответа

GNU Bash - это оболочка, используемая по умолчанию в терминалах на Ubuntu. Однако, когда скрипты выполняются при загрузке системы, используется тире, поскольку это черта, которая является /bin/sh.

Не работает ->

$ sh hello.sh

Будет работать ->

$./hello.sh

Задача решена

2
ответ дан 23 May 2018 в 05:21

Согласно вашему сценарию:

#!/bin/bash
function hello () {
    echo "Hello world"
}

#call this function as follow:
hello   # Syntax Correct
hello() # Syntax Error
1
ответ дан 23 May 2018 в 05:21

Сначала:

Синтаксическая ошибка связана с (). Удалите () из файла следующим образом:

#!/bin/bash
function hello {
echo "Hello world"
}

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

sed -i 's/() //g' hello.sh

Теперь вы должны иметь возможность запустите файл с желаемым результатом.

Сначала: :

Вы могли бы добавить строки 2, 3 и 4 в ваш файл ~/.bashrc.

function hello () {
echo "Hello world"
}

Помните, не используйте sudo для редактирования файла ~/.bashrc!

После добавления строк в файл выполните следующую команду для перезапуска bash или «source «ваш .bashrc-файл:

. ~/.bashrc

Теперь вы должны иметь возможность запускать comand hello, а« Hello world »должен быть напечатан в терминале.

do not

Вы можете отредактировать файл, чтобы сказать это:

#!/bin/bash
echo "Hello world"

и назовите файл hello и сохраните файл на /usr/local/bin.

После выполнения всего этого сделайте исполняемый файл, выполнив следующую команду:

sudo chmod +x /usr/local/bin/hello

Теперь вы можете запустить команду hello и «Hello world» должен быть напечатан в терминале.

Наконец:

Третьим вариантом было бы добавить следующую строку в ваш файл ~/.bashrc :

alias hello='echo "Hello world"'

Затем отправьте свой .bashrc-файл, используя следующую команду:

. ~/.bashrc 
1
ответ дан 23 May 2018 в 05:21
  • 1
    Спасибо за ваши ответы .... Я попробовал несколько и нашел ответ достаточно простым. Вместо использования $ sh hello.sh ... ./hello.sh работает отлично. Должно быть, shebang был написан поверх написанного ^^ – James A 9 October 2016 в 17:17
  • 2
    Почему голос Томаса был проголосован, но? Разве он не прав? – James A 9 October 2016 в 17:21

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

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