El script sh funciona bien en la terminal de mi computadora pero produce errores en un servidor remoto

El script sh funciona bien en la terminal de mi computadora pero produce errores en un servidor remoto

Tengo este script de prueba sh que puedo ejecutar en mi computadora y que se supone que no produce nada si todo funciona. He usado scp para transferir todo lo que hay en la carpeta en la que estoy trabajando a un servidor remoto y cuando lo ejecuto en el servidor remoto obtengo errores como

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

No recibí estos errores en mi computadora y cuando reviso que script2.pl está en helperScripts, está allí

Cuando ejecuto sh -version en el servidor remoto obtengo

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.

Cuando ejecuto sh -version en la terminal de mi computadora, aparece

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

No sé si esto importa. ¿Alguien sabe qué puedo hacer? Preferiría no tener que reescribir cosas en mi guión porque he estado intentando hacerlo y parece que siguen surgiendo más problemas cuando hago los nuevos.

Respuesta1

no lo hacenecesidadimporta, pero si,poderimporta dependiendo de cómo escribas. Y no proporcionó el script para que nadie le indicara cómo escribir para ningún shell Bourne. Si prefiere tener versiones de BASH que sean más compatibles entre sí...

Instalarcerveza caseraen tu Mac usando Terminal.appoiTerm2.app. Y con Homebrew, instale BASH ( brew install bash). Luego cambia tu shell en Mac: chsh -s /usr/local/bin/bash. Cerrar sesión. Inicie sesión. Hoy, esto le brinda BASH 4.4 en macOS/OS X, que es mucho más compatible con las otras versiones de BASH que tiene. Esto no ahorrará algunas reescrituras de los scripts actuales, pero casi con seguridad eliminará los problemas de los scripts nuevos.

Los scripts locales de Mac también se pueden utilizar #!/usr/local/bin/bashsin cambiar el shell.

Es posible que también necesites instalar Xcode para compilar software desde Homebrew. Si no lo ha hecho después de instalar Xcode (desde la App Store), instale las herramientas de línea de comandos de Xcode con xcode-select --install.

información relacionada