Corrigir erro de sintaxe Bash próximo ao token inesperado
Miscelânea / / May 30, 2022
A codificação no Linux Bash Terminal tornou-se uma prática predominante no setor de codificação. Os engenheiros de software e os alunos que aprendem a linguagem de codificação se deparam com vários erros. Se você viu repetidamente os erros como erro de sintaxe próximo ao token inesperado '(' ou erro de sintaxe Bash token quase inesperado, você pode tentar confiar nos métodos descritos no artigo e se tornar um proficiente codificador. Leia os métodos descritos no artigo na ordem descrita e corrija os erros nas linhas de comando do seu arquivo.
Conteúdo
- Como corrigir erro de sintaxe Bash próximo ao token inesperado
- Método 1: corrigir erros manualmente em cada linha de comando
- Etapa I: Ler o conteúdo do arquivo
- Etapa II: Remover quebras de linha do Windows
- Etapa III: definir permissões para o arquivo recém-criado
- Etapa IV: Formatar o código no arquivo
- Método 2: reescrever código
- Método 3: Use o comando Dos2unix.exe
Como corrigir erro de sintaxe Bash próximo ao token inesperado
Linux Bash é um interpretador de linha de comando para o sistema baseado em Linux e é um substituto para o Bourne Shell ou sh. Os arquivos são nomeados usando o formato .sh no Linux
festança script. Se houver problemas de formatação no código no script de shell, você poderá enfrentar um erro de sintaxe. Se o erro estiver próximo do ( caractere, o shell solicitará o erro na linha e exibirá o erro na linha correspondente. Como o Linux Bash é um interpretador, a linha com o erro será retornada para você no Terminal e ele interromperá a verificação do restante dos comandos no script. Portanto, você precisa corrigir o erro na linha de comando específica e prosseguir para a próxima para corrigir o erro de token inesperado no script de shell. As causas para o erro de sintaxe próximo ao token inesperado no Linux Bash estão listadas abaixo nesta seção:- Codificação com sequências de escape- Se você escreveu os códigos no script Bash, as sequências de escape ou as aspas no script podem causar erros. As seqüências de escape e aspas devem ser escritas no formato correto para corrigir o erro.
- Sintaxe incorreta no arquivo de codificação - A sintaxe no código pode dar o erro de sintaxe se o comando for escrito na sintaxe errada, como alterar a ordem dos loops.
- Uso incorreto do comando- Se você não estiver usando o comando corretamente, como atribuição de valor incorreta, pode haver um erro de sintaxe.
- SO incompatível nos sistemas- Se o shell para o script de codificação não for compatível entre os sistemas Unix e DOS, você poderá ter um erro inesperado.
- Problemas no script de shell bash- Os problemas executados no script de shell bash no arquivo copiado de outro sistema podem gerar o erro de token inesperado.
Considere um arquivo chamado exemplo.sh criado no script Linux Bash com as seguintes linhas de comando para fins explicativos. O arquivo de exemplo tem as possibilidades de erros de sintaxe e inclui todos os comandos possíveis que podem ser usados no script de shell.
str= 'Primeira linha de comando de '(arquivo de exemplo)' no script'str= [(1,2),(3,4)]if[ $day == “mon” ] então eco "mon"senão eco "não seg"fipara VARIÁVEL em {0..2}; entãofaça echo command1; comando de eco2; comando de eco3; comando de eco4; feitoenquanto verdadeiro; faça se [ $ dia == “seg” ]; então ecoe “mon”; senão echo “not mon”; feito; fi
Método 1: corrigir erros manualmente em cada linha de comando
O primeiro método para corrigir os erros é corrigir o erro de sintaxe manualmente em cada linha de comando no script. As etapas para resolver os erros de sintaxe próximos ao token inesperado nas linhas de comando são discutidas nesta seção. O processo para corrigir o erro inesperado de token no Terminal é descrito abaixo. Execute o arquivo no terminal digitando o ./example.sh comando e pressionando o Digitarchave.
2. Note o linhas que têm o erro de token inesperado nas linhas de comando no resultado abaixo.
3. Corrija o erro em cada linha seguindo os métodos discutidos abaixo individualmente e salvando o arquivo.
4. Corre o arquivo novamente após as alterações e verifique se o erro de sintaxe foi resolvido no arquivo.
Leia também:Como instalar o Linux Bash Shell no Windows 10
Etapa I: Ler o conteúdo do arquivo
O primeiro passo para resolver o erro de sintaxe nas linhas de comando é ler o arquivo no Terminal. SE houver problemas com o arquivo, talvez você não consiga visualizá-lo. A prática regular de visualizar o arquivo é executar o arquivo usando o comando ./example.sh mas você não pode modificar o conteúdo do arquivo. As opções para visualizar o conteúdo do arquivo e modificar as linhas de comando para corrigir o erro de sintaxe próximo ao token inesperado '(' são discutidas abaixo.
Opção 1: Através do Comando CAT
A primeira opção é usar o gato comando para visualizar o arquivo no script de shell. Leia o conteúdo do arquivo com o erro de token inesperado usando o comando cat digitando o comando cat –v exemplo.sh no Terminal.
Nota 1: o exemplo.sh é usado para fins explicativos e você precisa digitar o nome do arquivo que possui o erro de token inesperado.
Nota 2: O comando cat –v é usado para exibir todos os caracteres invisíveis que provavelmente representam o retorno de carro ou o espaço no-break.
Opção 2: através do comando VX
Se você não puder usar o comando cat, tente usar o comando vx para visualizar e alterar os comandos no arquivo usando a etapa abaixo. Digite o sh –vx ./example.sh comando no Terminal para abrir o arquivo.
Opção 3: Através do comando od –a
3. Se houver alguns caracteres invisíveis nas linhas de comando, você pode usar o comando od –a para visualizar o arquivo. Se o conteúdo do arquivo não estiver visível no arquivo de código, você pode tentar ler o arquivo usando o comando od –um exemplo.sh para modificar o código.
Etapa II: Remover quebras de linha do Windows
Se houver quebras de linha do Windows no script de shell, você poderá usar os comandos do console para remover as quebras de linha e copiar as linhas de código para um novo arquivo para corrigir o erro.
Digite o seguinte comando no Terminal para salvar o conteúdo do arquivo em outro arquivo chamado corrigidoexemplo.sh para remover as quebras de linha do Windows no script.
tr –d ‘\r’corrigidoexemplo.sh
Etapa III: definir permissões para o arquivo recém-criado
Você precisa definir a permissão para o arquivo recém-criado para editar o arquivo para que o arquivo possa ser executado no shell. Digite o comando como chmod 755 corrigidoexample.sh no Terminal para fornecer as permissões para o arquivo e executá-lo. Agora você pode visualizar o arquivo corrigido e corrigir os problemas de formatação e corrigir o erro de sintaxe próximo ao token inesperado '(' no arquivo.
Etapa IV: Formatar o código no arquivo
A segunda etapa é formatar as linhas de código individualmente e alterar as linhas de comando manualmente no arquivo. As opções para formatar o arquivo para corrigir o erro de sintaxe próximo ao token inesperado '(' são discutidas abaixo nesta seção.
Opção 1: substituir aspas simples por aspas duplas
Se você estiver usando aspas simples nas linhas de comando, precisará alterar o comando substituindo as aspas simples por aspas duplas para corrigir o erro de sintaxe. No exemplo.sh arquivo, remova as linhas de código que ‘ e ’ ou o aspas simples no comando e substitua as aspas simples pelas aspas duplas ou o “ e ’’. Aqui, no arquivo de exemplo, você precisa alterar o código como str= “Primeira linha de comando de “\(arquivo de exemplo)\” no script”
Observação: As aspas duplas são necessárias para os comandos do tipo de parâmetro, como str= “[(1,2),(3,4)]”.
Leia também:20 melhores distribuições Linux leves de 2022
Opção 2: adicionar $ às linhas de string
Se você adicionou valores de string ao script, você precisa adicionar um $ aos valores de string para corrigir o erro de sintaxe no script. Adicione o $ para as linhas de comando com o corda valores para corrigir o erro inesperado. Aqui, no arquivo de exemplo, altere a linha de comando como;
str= $ 'Primeira linha de comando de '\(arquivo de exemplo)\' no script'
Observação: Se você estiver usando o $ no valor da string, você pode ignorar a sequência de escape de barra invertida, pois as linhas de comando são decodificadas pelo padrão ANSI C. Em outras palavras, usando um $ para valor de string, você pode evitar usar aspas duplas em vez de aspas simples nas linhas de comando.
Opção 3: converter tabulações em espaços
Os espaços que você deixou entre duas instruções no comando devem ser espaços em vez de tabulações para corrigir o erro de sintaxe no script. Se você estiver recebendo o erro no Cygwin, tente converter as guias nos códigos em espaços para corrigir o erro. A linha de comando é fornecida abaixo como;
faça echo command1; comando de eco2; comando de eco3; comando de eco4; feito
O comando acima deve ser reescrito conforme mostrado abaixo para corrigir o erro.
faça echo command1; comando de eco2; comando de eco3; comando de eco4; feito
Opção 4: use caracteres de escape
Se você estiver usando um caractere bash, é importante usar um caractere de escape junto com o caractere bash para corrigir o erro de sintaxe. o parênteses ou () são caracteres especiais bash no arquivo, portanto, você precisaria usar o caractere de escape ou o barra invertida na linha de comando para escapar dos caracteres normais para executar o comando. o str= 'Primeira linha de comando de \'(arquivo de exemplo)\' no script' comando não daria um erro no Terminal, pois o caractere de escape é usado.
Leia também: Como ficar entre nós no Linux
Opção 5: use espaço entre os caracteres
O script de shell reconhece os comandos e instruções no script pelos valores padrão. Você precisa garantir o uso adequado do espaço entre os caracteres para que o shell possa identificar o comando fornecido no script. O espaço é um caractere usado para diferenciar dois caracteres na linha de comando. No código, não há espaço entre o E se e [, que dá o erro de token inesperado como o E se[ comando não é identificado pelo shell. Se o código for alterado para if [ $ dia == “seg” ]; então o erro pode ser resolvido como o comando shell boletim E se é identificado pela casca.
Opção 6: use o separador de comandos para instruções
Os vários comandos no script de shell precisam ser separados em instruções para que o Terminal identifique comandos individuais. Você precisa usar um separador de comando para corrigir o erro de sintaxe no Linux Bash. As instruções no comando precisam ser separadas por um separador de comando, como um ponto e vírgula ou um ; ou uma nova linha pressionando a tecla Digitar chave. Por exemplo, o comando no código if [ $ dia == “mon” ] então tem que ser alterado como if [ $ dia == “seg” ]; então para corrigir o erro. Como o ponto e vírgula é usado como separador de comandos entre os caracteres [ e então, você pode corrigir esse erro.
Opção 7: Remover Declarações Adicionais
Às vezes, você pode ter adicionado instruções adicionais ou pode ter misturado os códigos no caso de vários loops aninhados. Você precisa remover as instruções adicionais nas linhas de comando para corrigir o erro de sintaxe próximo ao token inesperado '(' no Linux Bash. Os loops de bash para... feito ou e as construções construtivas se... fi precisa estar na sintaxe correta. O arquivo de exemplo tem a sintaxe errada no por loop tem o termo então que é usado no E se declaração. Modificar o código como o código a seguir corrigirá o erro de token inesperado. A declaração então é uma instrução adicional no código e a remoção do termo corrigirá o erro.
para VARIÁVEL em {0..2}; faça echo command1; comando de eco2; comando de eco3; comando de eco4; feito
Opção 8: Garantir que a Ordem de Fechamento das Demonstrações esteja Correta
Se você estiver usando muitas instruções de construção aninhadas ou condicionais no script de shell, você deve garantir que os loops sejam fechados na ordem em que são abertos. Você pode usar um novo separador de linha para evitar conflitos com os loops. A ordem de fechamento dos loops aninhados e das instruções condicionais deve estar correta e não deve ser alterada. Os loops no código enquanto verdadeiro; faça se [ $ dia == “seg” ]; então ecoe “mon”; senão echo “not mon”; feito; fi precisa ser fechado na ordem correta. Alterar o código conforme mostrado abaixo pode corrigir o erro de token inesperado, pois a ordem de fechamento das instruções é corrigida.
enquanto verdadeiro; faça se [ $ dia == “seg” ]; então ecoe “mon”; senão echo “not mon”; fi; feito
Leia também:O que é um intérprete de linha de comando?
Método 2: reescrever código
Se você copiou o código e o colou em um novo arquivo no Terminal, você pode tentar reescrever o código manualmente para corrigir o erro. Os erros no código podem ser corrigidos se você tiver escrito o código sem erros de formato no script de shell. Isso ocorre porque os caracteres ocultos e os problemas de formatação no editor de texto, como o Microsoft Word, você pode ter usado para copiar e colar o código podem ter dado o erro.
Método 3: Use o comando Dos2unix.exe
Se você estiver usando um sistema operacional Unix, você pode escrever códigos com o caractere de alimentação de linha como \n para passar para a próxima linha no arquivo. No entanto, se você estiver usando um sistema operacional Windows, precisará passar para a próxima linha no código usando o retorno de carro e o avanço de linha ou o \r\n no arquivo. Se você executar o código escrito no sistema operacional Windows no Cygwin, poderá obter o erro de sintaxe próximo ao token inesperado '('.
Para corrigir o erro, você precisa limpar os caracteres de retorno de carro usando o DOS para Unix ferramenta de linha de comando como um conversor de formato de arquivo de texto. Digite o seguinte comando como dos2unix.exe exemplo.sh no Terminal e você pode converter o arquivo para o formato Unix.
Recomendado:
- Como criar uma conta do Telegram no Android
- Corrigir erro de tempo de execução C++ no Windows 10
- Como excluir uma conta do Github permanentemente
- As 14 melhores placas gráficas para Linux
O artigo discutiu os métodos básicos para corrigir Erro de sintaxe Bash próximo ao token inesperado‘(’ no roteiro. Se você estiver usando um Bash do Linux, poderá usar os métodos explicados nesta seção para corrigir o erro de sintaxe do Bash próximo ao token inesperado. Se você leu todo o artigo e achou o conteúdo útil, deixe-nos suas sugestões e dúvidas na seção de comentários.