Correção: Erro de sintaxe próximo ao token inesperado `(& lsquo;

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

Erro de sintaxe próximo ao token inesperado `('

Esta mensagem de erro também surge quando você insere comandos na linha de comando do Linux para tarefas diárias, como copiar arquivos manualmente, etc. As principais razões pelas quais essa mensagem de erro ocorre é devido a sintaxe incorreta ou problema do sistema operacional em interpretar os comandos de outro sistema / Concha.

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

Os motivos para essa mensagem de erro são muito diversos e não podem ser listados em um artigo, pois existem milhares de possibilidades de sintaxe errada ao executar comandos. Os principais motivos para esse erro são:

  • Sintaxe incorreta ao executar qualquer comando em qualquer uma das plataformas. Ou você não está usando o comando corretamente ou digitou a sintaxe errada.
  • O shell não é compatível entre sistemas Unix / DOS.
  • Existem problemas ao executar o script bash shell de outra fonte .

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

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

A primeira e principal razão pela qual você pode receber essa mensagem de erro é devido à sintaxe incorreta em seu código ou porque você não está seguindo o formato exato dos comandos. Cada comando tem um formato predefinido que você pode ver em sua documentação. Vários parâmetros são opcionais, outros são obrigatórios.

Além disso, cuidado extra deve ser tomado com espaço extra , uso de aspas duplas e os parâmetros obrigatórios exigidos. Se algum deles estiver faltando ou tiver sido declarado incorretamente, você não poderá executar seu código.

Por exemplo, em vez do seguinte código

[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 está executando seus comandos / script de shell corretamente se ele se estender por várias linhas.

Devido ao 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.

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

Se estiver usando um script de shell que funciona no sistema de origem, mas retorna um erro no destino, você pode solucionar o problema do script verificando as variáveis ​​que são armazenadas durante a execução e 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 após 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 Line Feed (\ n). Se você estiver usando o Cygwin, ele não conseguirá processar os scripts feitos pelo DOS / Windows e Mac mais antigo por causa do caractere Carriage Return (\ r) extra.

Usando o comando 'dos2unix.exe'

Aqui você pode fazer o comando 'dos2unix.exe' que irá converter o script para o formato correto e então 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. Já que não podemos cobrir todas as possibilidades, você teria uma idéia de quais tipos de erros podem ocorrer e como corrigi-los.