Tentando executar algumas funções do bash, mas continuo encontrando erro de sintaxe: "(" inesperado. Tentei remover os colchetes, parênteses, etc etc etc ... nada parece funcionar.
$ bash --version
GNU bash, version 4.3.46(1) release
#!/bin/bash
function hello () {
echo "Hello world"
}
Respostas:
Se você estiver executando o script
sh hello.sh
, o shell de interpretação não será o mencionado na linha shebang, mas/bin/sh
será usado. No caso do Debian e Ubuntu, por padrão, isso serádash
.Portanto, para executar seu script corretamente com a
bash
, use um dos seguintes.ou
Como alternativa, você também pode definir
bash
como/bin/sh
.fonte
Primeiro:
O erro de sintaxe é devido a (). Remova () do arquivo assim:
ou você pode simplesmente executar o seguinte comando para editar o arquivo para você:
Agora você deve conseguir executar o arquivo com o resultado desejado.
Alternativamente :
Você pode adicionar as linhas 2, 3 e 4 ao seu
~/.bashrc
arquivo.Lembre-se, não use
sudo
para editar seu~/.bashrc
arquivo!Depois de adicionar as linhas ao arquivo, execute o seguinte comando para reiniciar o bash ou "origine" seu arquivo .bashrc:
Agora você deve poder executar o comando
hello
e "Hello world" deve ser impresso no terminal.Além disso:
Você pode editar o arquivo para dizer isso:
e nomeie o arquivo
hello
e salve o arquivo em/usr/local/bin
.Depois de fazer tudo isso, torne o arquivo executável executando o seguinte comando:
Agora você deve poder executar o comando
hello
e "Hello world" deve ser impresso no terminal.Finalmente:
Uma terceira opção seria adicionar a seguinte linha ao seu
~/.bashrc
arquivo:Em seguida, origine seu arquivo .bashrc usando o seguinte comando:
fonte
GNU Bash é o shell usado por padrão nos terminais do Ubuntu. Entretanto, quando os scripts são executados na inicialização do sistema, o traço é usado, pois é o traço que é / bin / sh.
Não vai funcionar ->
Vai funcionar ->
Problema resolvido
fonte
De acordo com o seu script:
fonte