Resolvendo o problema do script Bash inferior por meio do comando shopt

0

Como resolver o problema da versão do Bash no meu Ubuntu?

Estou tentando executar um script de shell no meu terminal VPN do Ubuntu.

Minha versão do Bash é:

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

Meu script de shell é:

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

Eu dei permissões para isso da seguinte forma:

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

Eu recebo este erro:

syntax error in conditional expression: unexpected token '(‘

que é por causa da versão mais baixa do Bash, descobri depois de pesquisar.

A solução que encontrei foi adicionar esta linha após a declaração Bash:

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

Eu preciso saber onde no script eu preciso dar a linha acima.

Eu tentei apenas após #!/bin/bash no meu script, mas ainda recebo o mesmo erro.

    
por Sushivam 24.11.2016 / 12:49

1 resposta

0

Se você executar um script Bash com o shell Bourne ( sh ), o shebang ( #!/bin/bash ) será ignorado, portanto sh executará o script, não bash . Você precisa executar o script assim:

bash _myscript.sh
    
por wjandrea 26.11.2016 / 00:18