Функции удара Ubuntu.. синтаксическая ошибка: “(” или “}” неожиданный

Попытка выполнить некоторые функции удара, но продолжать встречаться с синтаксической ошибкой: "(" неожиданный. У меня есть try'ed удаление скобок, круглая скобка и т.д. и т.д.... ничто, кажется, не работает.

$ bash --version
GNU bash, version 4.3.46(1) release

#!/bin/bash
function hello () {
echo "Hello world"
}
9
задан 9 October 2016 в 06:34

4 ответа

Если Вы запустите скрипт с sh hello.sh, то оболочка интерпретации не будет той, упомянутой в строке хижины, но /bin/sh будет использоваться. В случае Debian и Ubuntu по умолчанию это будет dash.

Так для запущения скрипта правильно с bash используйте любое из следующих.

/bin/bash hello.sh

или

chmod +x hello.sh
./hello.sh

, Кроме того, Вы также могли установить bash как /bin/sh.

dpkg-reconfigure dash 
17
ответ дан 23 November 2019 в 04:48

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

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

$ sh hello.sh

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

$./hello.sh

, проблема решила

2
ответ дан 23 November 2019 в 04:48

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

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

#call this function as follow:
hello   # Syntax Correct
hello() # Syntax Error
1
ответ дан 23 November 2019 в 04:48

Во-первых:

Синтаксическая ошибка из-за (). Удалите () из файла как это:

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

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

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

Необходимо теперь смочь петлять с желаемым результатом.


Кроме того:

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

function hello () {
echo "Hello world"
}

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

После того, как Вы добавляете строки к файлу, выполняете следующую команду, чтобы перезапустить удар или "получить" Ваш .bashrc файл:

. ~/.bashrc

Необходимо теперь смочь выполнить команду hello и "Привет мир" должен распечатать в терминале.


Также:

Вы могли отредактировать файл для высказывания этого вместо этого:

#!/bin/bash
echo "Hello world"

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

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

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

Необходимо теперь смочь выполнить команду hello и "Привет мир" должен распечатать в терминале.


Наконец:

Третья опция состояла бы в том, чтобы добавить следующую строку к Вашему ~/.bashrc файл:

alias hello='echo "Hello world"'

Затем получите свой .bashrc файл с помощью следующей команды:

. ~/.bashrc 
2
ответ дан 23 November 2019 в 04:48

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

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