Inicio
» MAC OS X
»
Cómo ejecutar un script de shell (.sh) en macOS
Cómo ejecutar un script de shell (.sh) en macOS
Para ejecutar un script de shell en macOS , abre la Terminal, ve a la carpeta que contiene el .sharchivo y ejecútalo con su intérprete. Por ejemplo, bash hello.shejecuta un script de Bash sin cambiar sus permisos. Si quieres ejecutarlo como un comando, hazlo ejecutable con `sudo` chmod +x hello.shy luego ejecuta `sudo` ./hello.sh. Estos métodos funcionan en las versiones actuales de macOS.
Comprueba el script antes de ejecutarlo.
Un script de shell es un archivo de texto plano que contiene comandos. Estos comandos se ejecutan con los permisos de tu cuenta de usuario, por lo que un script puede editar o eliminar archivos, instalar software o enviar datos a través de una red. Lee el script que recibas antes de ejecutarlo, especialmente si solicita una contraseña de administrador o utiliza comandos de seguridad sudo. Ejecuta solo scripts de fuentes confiables; cambiar los permisos de un archivo no garantiza la seguridad de su contenido.
Apple describe los scripts de shell como archivos de texto que contienen comandos UNIX y explica cómo un shebang selecciona el intérprete de comandos que ejecuta el script. Consulta la guía de Apple sobre scripts de shell en la terminal .
Ejecuta un script .sh con Bash.
Esta es la forma más sencilla de ejecutar un script de Bash. No es necesario añadir permisos de ejecución previamente.
Crea o localiza el script. Un script de shell se puede escribir en cualquier editor de texto plano. Para una prueba rápida, abre TextEdit, elige Formato > Convertir a texto plano e introduce estas dos líneas:
#!/bin/bash
echo "Hello from macOS"
Guarda el archivo como hello.sh. En el cuadro de diálogo de guardado, comprueba que el nombre termine en .shy que TextEdit no haya añadido .txt. La primera línea es el shebang: identifica a Bash como el intérprete cuando se ejecuta el script directamente. La segunda línea imprime un mensaje breve.
El archivo de ejemplo hello.sh contiene una línea shebang seguida de un comando que imprime texto.
Abre la Terminal y ve a la carpeta del archivo. Presiona Comando-Espacio, escribe Terminal y presiona Intro. Si guardaste el archivo en Descargas, ingresa:
cd ~/Downloads
Pulsa Intro después de cada comando. Puedes escribir lspara listar los archivos y confirmar que hello.shestán ahí. Cambia Downloadsa la carpeta que usaste realmente. Si el nombre de una carpeta o archivo contiene espacios, pon la ruta entre comillas, como por ejemplo cd "$HOME/My Scripts".
Utilice el comando cd para abrir la carpeta que contiene el script y, a continuación, compruebe su nombre con el comando ls.
Ejecuta el script con Bash. Introduce el nombre del script después de bash:
bash hello.sh
La terminal debería mostrar Hello from macOS. Si el script usa sintaxis Zsh en lugar de Bash, ejecute zsh hello.sh. El intérprete de comandos que se abre interactivamente en la terminal suele ser Zsh, pero eso no significa que todos los scripts deban ejecutarse con Zsh; use el intérprete para el que se escribió el script. El shebang de un script a menudo indica ese intérprete.
Concede permiso de ejecución. En la misma ventana de Terminal y carpeta, ejecuta:
chmod +x hello.sh
Esto añade permisos de ejecución a este archivo. Es un cambio que solo se aplica una vez, a menos que se restablezcan los permisos posteriormente. Evite usar permisos más amplios de lo necesario; chmod +xestos son suficientes para un script personal de su propiedad.
El comando chmod +x marca hello.sh como ejecutable.
Ejecútalo desde la carpeta actual. Escribe:
./hello.sh
Esto ./le indica al intérprete de comandos que ejecute el archivo en el directorio actual. Sin esto, el intérprete de comandos generalmente busca en las carpetas listadas PATHen lugar de en la carpeta actual. Si se encuentra en otro lugar, use cdpara volver a la carpeta del script o ingrese su ruta completa, por ejemplo ~/Downloads/hello.sh.
Al ejecutar ./hello.sh se inicia el script ejecutable y se muestra su resultado.
Errores comunes y soluciones
“Permiso denegado” después de usar ./hello.sh: confirme el nombre del archivo y luego ejecute chmod +x hello.sh. O use bash hello.shsi es un script Bash y no necesita ejecución directa.
“No existe tal archivo o directorio”: confirme la carpeta con pwd, liste su contenido con ls, y verifique la ortografía y el uso de mayúsculas. Asegúrese de que el archivo no se llame realmente hello.sh.txt.
Error "Comando no encontrado" en el script: es posible que el script dependa de una utilidad que falta o no está disponible PATH. Consulte la documentación del script antes de instalar cualquier cosa.
El mensaje "Intérprete incorrecto" o un error que indique que ^Mla primera línea no está disponible, o que el archivo utiliza saltos de línea de estilo Windows, puede indicar que el intérprete no está disponible. Compruebe la línea shebang y guarde el archivo con saltos de línea Unix (LF).
¿Qué método debería utilizar?
Úselo bash hello.shpara una ejecución rápida cuando sepa que es un script de Bash. Úselo chmod +x hello.shseguido de ./hello.shcuando desee ejecutarlo directamente y dejar que su shebang elija el intérprete. Ninguno de los dos métodos instala dependencias faltantes, corrige comandos incompatibles ni verifica si el script es confiable.