Как решить проблему версии, избивают мою 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
в моем сценарии, но я все еще получаю ту же ошибку.
Если Вы запускаете скрипт Bash с Оболочкой Bourne (sh
), хижина (#!/bin/bash
) проигнорирована, таким образом sh
запускает скрипт, не bash
. Необходимо запустить скрипт как это:
bash _myscript.sh