Inicio
» MAC OS X
»
Cómo ejecutar comandos de terminal desde un script en macOS
Cómo ejecutar comandos de terminal desde un script en macOS
Para ejecutar comandos de Terminal desde un script en macOS, inclúyalos en un script de shell de texto plano, hágalo ejecutable y luego ejecútelo desde Finder o Terminal. Use una .commandextensión para abrirlo haciendo doble clic. Un script no elude los controles de privacidad de macOS ni otorga privilegios de administrador.
Un breve script de shell comienza con una línea shebang que selecciona zsh.
1. Escribe los comandos en un archivo de texto plano.
Un script de shell es un archivo de texto que contiene comandos. Se inicia con un shebang , la primera línea que le indica a macOS qué shell debe interpretar el archivo. El shell predeterminado actual para las nuevas ventanas de Terminal es zsh, aunque un administrador puede establecer uno diferente por defecto, como explica Apple en su guía de Terminal . Este ejemplo utiliza zsh explícitamente:
#!/bin/zsh
# Print a message when the script runs
echo "Script is running"
Coloca los comandos en líneas separadas debajo del shebang. El shebang selecciona el intérprete, así que usa la sintaxis que admita; un script de Bash, por ejemplo, puede comenzar con . La guía de scripts de shell#!/bin/bash de Apple explica los conceptos básicos.
Puedes usar TextEdit, pero asegúrate de que el archivo sea texto plano: los nuevos documentos de TextEdit pueden ser texto enriquecido. Selecciona Formato > Convertir a texto plano , o configura el formato de nuevo documento de TextEdit a Texto plano en sus ajustes. El formato de texto enriquecido no es código shell. Apple documenta estas opciones en su guía de TextEdit . También funciona un editor de código o un editor de línea de comandos nano.
Guarda el script con la extensión .command en una ubicación que puedas encontrar.
2. Guárdalo con una .commandextensión.
Guarda el archivo de texto plano con un nombre descriptivo, como MyScript.command. La extensión ayuda a Finder a abrir el script en Terminal al hacer doble clic. La documentación para desarrolladores archivada de Apple describe este flujo de trabajo de doble clic para scripts de shell. Comprueba el nombre final en Finder: si termina en .command.txt, cámbiale el nombre para que la extensión final sea solo .command. Guarda el ejemplo en una ubicación como el Escritorio mientras lo configuras.
Si macOS pregunta qué extensión usar, manténgala .commandy confirme que Finder no ha agregado ninguna .txt.
3. Haz que el script sea ejecutable.
Abre la Terminal y otorga a tu cuenta permiso para ejecutar el archivo. Para el ejemplo guardado en el Escritorio, introduce:
chmod u+x "$HOME/Desktop/MyScript.command"
Pulsa Intro. u+xAñade permiso de ejecución para el propietario; las comillas protegen las rutas con espacios. Sustituye la ruta de ejemplo si es necesario. Arrastra el archivo a la Terminal o usa el menú contextual (Opción + clic) del Finder para copiar su ruta. Apple muestra el mismo método en sus instrucciones para archivos ejecutables .
El comando chmod añade permisos de ejecución para el propietario del archivo.
4. Ejecutar el script
Haz doble clic MyScript.commanden Finder para ejecutarlo en la Terminal. La salida y los errores aparecerán allí. O introduce su ruta completa:
"$HOME/Desktop/MyScript.command"
O bien, cambie primero a la carpeta y luego anteponga el nombre del archivo con ./:
cd "$HOME/Desktop"
./MyScript.command
Esto ./le indica al intérprete de comandos que ejecute un archivo en la carpeta actual. La guía de comandos de Terminal de Apple explica cómo ejecutar un archivo ejecutable mediante su ruta de acceso.
Ejecuta el archivo siguiendo su ruta y comprueba el resultado en la terminal.
Solucionar errores comunes
“Permiso denegado”: Compruebe que ha ejecutado el comando chmod u+xen el archivo correcto. Si es necesario, repita el comando utilizando la ruta exacta del archivo. Hacer que un archivo sea ejecutable no autoriza todos los comandos que contiene.
«No existe tal archivo o directorio»: Confirme la ubicación y la ortografía, incluyendo la extensión. Un archivo guardado accidentalmente MyScript.command.txtno coincidirá con el comando anterior. Arrastrar el archivo a la Terminal puede ayudar a insertar su ruta.
Un comando funciona al escribirlo, pero no en el script: el script puede usar un intérprete de comandos diferente o depender de alias, variables de entorno o un directorio de trabajo de tu sesión interactiva de Terminal. Usa la línea shebang correcta, evita depender de alias y especifica las rutas de archivo explícitamente. Si los comandos necesitan una carpeta específica, agrega la cdlínea correspondiente cerca del inicio del script.
Comprenda los permisos antes de compartir.
El permiso de ejecución es independiente de los permisos de privacidad. Un script normalmente se ejecuta con tu cuenta; úsalo sudosolo para comandos que requieran privilegios de administrador.
macOS puede solicitar acceso a carpetas protegidas u otras aplicaciones. Revisa cada solicitud y concede solo lo necesario. Consulta el menú Apple > Ajustes del Sistema > Privacidad y seguridad para Archivos y carpetas y la configuración de privacidad relacionada . Las autorizaciones dependen del acceso solicitado y de la aplicación que lo solicita; no son permisos generales por comando ni se transfieren con un script compartido.
Antes de ejecutar o compartir un script, lee cada línea y asegúrate de entender qué cambios introduce. Un .commandarchivo es práctico porque se ejecuta al abrirlo, así que usa solo archivos de fuentes confiables.