script sh funcionando bem no terminal do meu computador, mas produzindo erros em um servidor remoto

script sh funcionando bem no terminal do meu computador, mas produzindo erros em um servidor remoto

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

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

Não recebi esses erros no meu computador e quando verifico para ver se script2.pl está em helperScripts, ele está lá

Quando executo sh -version no servidor remoto, recebo

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 do meu computador, recebo

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

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

Responder1

Nãoprecisarimporta, mas sim, épodeimporta 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 versões do BASH que sejam mais compatíveis entre si...

InstalarCerveja caseirano seu Mac usando Terminal.appouiTerm2.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 do BASH que você possui. Isso não poupará algumas reescritas dos scripts atuais, mas quase certamente eliminará os problemas dos novos scripts.

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

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

informação relacionada