sh script rodando bem no terminal do meu computador, mas produzindo erros em um servidor remoto [fechado]

1

Eu tenho este script de teste sh que eu posso rodar no meu computador que deve produzir nada como saída se tudo funcionar. Eu usei scp para transferir tudo na pasta que estou trabalhando em um servidor remoto e quando eu executo no servidor remoto eu recebo erros como

egrep: Unmatched ) or \)
egrep: Unmatched ) or \)
./script.sh: line 229: ./helperScripts/script2.pl: No such file or directory

Eu não recebi esses erros no meu computador e quando eu verifiquei o script2.pl está no helperScripts, ele está lá

Quando executo o sh -version no servidor remoto, obtenho

GNU bash, version 4.1.2(1)-release (i686-redhat-linux-gnu)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Quando executo sh -version no terminal de computadores, obtenho

GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin15)
Copyright (C) 2007 Free Software Foundation, Inc.

Eu não sei se isso é importante. Alguém sabe o que eu posso fazer, eu prefiro não ter que reescrever as coisas no meu script porque eu tenho tentado fazer isso e parece que mais problemas continuam a surgir quando eu faço os novos

    
por Jacob 29.09.2016 / 22:30

1 resposta

1

Não precisa para importar, mas sim, pode importar dependendo de como você escreve. E você não forneceu o script para ninguém apontar como escrever para qualquer shell Bourne. Se você preferir apenas ter versões do BASH que sejam mais compatíveis entre si ...

Instale o Homebrew no seu Mac usando Terminal.app ou iTerm2.app . E com o Homebrew, instale o BASH ( brew install bash ). Em seguida, altere seu shell no Mac: chsh -s /usr/local/bin/bash . Sair. Faça login. Hoje, você obtém o BASH 4.4 no macOS / OS X, que é muito mais compatível com as outras versões BASH que você possui. Isso não salvará algumas reescritas dos scripts atuais, mas quase certamente eliminará os problemas de novos scripts.

Scripts locais para o Mac também podem usar #!/usr/local/bin/bash sem alterar seu shell.

Você também pode precisar instalar o Xcode para compilar o software da Homebrew. Se você não tiver feito isso depois de instalar o Xcode (da App Store), instale as ferramentas de linha de comando do Xcode com xcode-select --install .

    
por 29.09.2016 / 22:48