Correção: Erro de sintaxe próximo do token inesperado `('

O erro de sintaxe da mensagem de erro próximo ao token inesperado `(' ocorre em um ambiente do tipo Unix, Cygwin e na interface da linha de comandos no Windows. Esse erro provavelmente será acionado quando você tentar executar um script de shell que foi editado ou criado em sistemas DOS / Windows ou Mac mais antigos.

Erro de sintaxe perto do token inesperado `('

Esta mensagem de erro também aparece quando você está digitando comandos na linha de comando do Linux para tarefas cotidianas, como copiar arquivos manualmente, etc. As principais razões pelas quais essa mensagem de erro ocorre é devido à sintaxe incorreta ou ao problema do sistema operacional ao interpretar comandos / Concha.

O que causa erro de sintaxe próximo do token inesperado `('?

As razões para essa mensagem de erro são muito diversas e não podem ser listadas em um artigo, pois há milhares de possibilidades de erro na sintaxe ao executar comandos. As principais razões para esse erro são:

  • Má sintaxe ao executar qualquer comando em qualquer plataforma. Ou você não está usando o comando corretamente ou digitou a sintaxe incorreta.
  • O shell não é compatível entre sistemas Unix / DOS.
  • Há problemas ao executar o script de shell bash de outra origem .

Neste artigo, supomos que você conheça os fundamentos da codificação e tenha uma ideia do que está fazendo. Se você é um iniciante, é melhor seguir tutoriais detalhados do idioma / comando que você está tentando executar. Você provavelmente cometeu um erro de alguma sintaxe.

Solução 1: Verificando a sintaxe e o formato dos comandos

A primeira e principal razão pela qual você pode ter essa mensagem de erro é a de sintaxe incorreta em seu código ou de não seguir o formato exato dos comandos. Cada comando tem um formato pré-definido que você pode ver em sua documentação. Vários parâmetros são opcionais, outros são obrigatórios.

Além disso, cuidados extras devem ser tomados para espaço extra, uso de aspas duplas e os parâmetros obrigatórios requeridos. Se algum deles estiver faltando ou tiver sido declarado incorretamente, você não poderá executar seu código.

Por exemplo, em vez do código a seguir

 [mycom7] # ./ctopo.sh um_test1 [(1, 2), (2, 1)] 

Você precisa executá-lo como

 [mycom7] # ./ctopo.sh um_test1 "[(1, 2), (2, 1)]" 

Além disso, certifique-se de que você esteja executando seus comandos / shell script corretamente se ele estiver abrangendo várias linhas.

Por causa do tipo de parâmetro, as aspas duplas são necessárias. Um espaço extra também pode arruinar seu código e forçar a mensagem de erro. Certifique-se de verificar a documentação oficial do comando que você está executando e veja se há algum problema nele.

Solução 2: Solução de problemas do seu script de shell

Se estiver usando um script de shell que funcione no sistema de origem, mas retorne um erro no destino, você poderá solucionar o script verificando as variáveis ​​que são armazenadas durante a execução e, em seguida, ver o que está causando o problema. Esta é uma causa muito comum, pois em vários casos, o shell tenta interpretar um caractere não imprimível.

Tente executar o shell com o parâmetro 'vx'. Isso nos mostrará quais comandos estão sendo executados e quais valores estão armazenados no script. Por aqui você pode solucionar problemas e diagnosticar o que está errado.

Por exemplo, execute o script no terminal depois de incluir 'vx' como:

 # sh -vx ./test_script5.sh 

Você pode verificar o conteúdo do script usando o comando 'cat' como:

 # cat test_script5.sh 

Solução 3: usando o comando 'dos2unix.exe'

Nos arquivos de texto do Windows / DOS, uma nova linha é uma combinação de um retorno de carro (\ r) seguido por um avanço de linha (\ n). No Mac (antes do Mac OS X), uma quebra de linha usava um simples retorno de carro (\ r). Unix / Linux e Mac OS X usam quebras de linha de alimentação de linha (\ n). Se você estiver usando o Cygwin, ele falhará ao processar os scripts feitos pelo DOS / Windows e Mac antigo por causa do caractere extra Carriage Return (\ r).

Usando o comando 'dos2unix.exe'

Aqui você pode fazer o comando 'dos2unix.exe', que irá converter o script para o formato correto e, em seguida, você pode executá-lo sem problemas.

Para concluir, você precisa pesquisar seus comandos e tipo de plataforma que está usando e certificar-se de que não haja discrepâncias. Como não podemos cobrir toda e qualquer possibilidade, você teria uma ideia de quais tipos de erros podem ocorrer e como corrigi-los.

Artigos Interessantes