Решение более низкого вопроса сценария Bash посредством команды shopt

Как решить проблему версии, избивают мою Ubuntu?

Я пытаюсь выполнить сценарий оболочки в своем терминале VPN Ubuntu.

Моя версия Bash:

GNU bash, version 4.3.46(1)-release (x86_64-pc-linux-gnu)

Мой сценарий оболочки:

#!/bin/bash
...
...

Я дал полномочия для него как так:

chmod +x _myscript.sh
ex -sc $'%s/\r$//e|x' _myscript.sh
sh _myscript.sh

Я получаю эту ошибку:

syntax error in conditional expression: unexpected token `(‘

который является из-за более низкой версии Bash, я узнал после проведения исследований.

Решение, которое я нашел, состояло в том, чтобы добавить эту строку после объявления Bash:

[code language="bash"] shopt -s extglob [/code] 

Я должен знать, где в сценарии я должен дать вышеупомянутую строку.

Я попробовал сразу после #!/bin/bash в моем сценарии, но я все еще получаю ту же ошибку.

0
задан 26 November 2016 в 02:11

1 ответ

Если Вы запускаете скрипт Bash с Оболочкой Bourne (sh), хижина (#!/bin/bash) проигнорирована, таким образом sh запускает скрипт, не bash. Необходимо запустить скрипт как это:

bash _myscript.sh
0
ответ дан 28 September 2019 в 03:09

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

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