195 votos

¿Cómo ejecuto un archivo `.sh` o `.command` en Terminal?

Siempre he querido poder ejecutar un script que he descargado en línea directamente desde el Finder, pero simplemente hacer doble clic en el archivo no funciona.

232voto

Jason94 Puntos 123

Abre la Terminal, escribe sh /ruta/al/archivo y presiona enter.

Más rápido es escribir sh seguido de un espacio y luego arrastrar el archivo a la ventana y soltar el ícono en cualquier lugar de la ventana.

4 votos

¿Qué crees que sucederá si el script de shell está escrito en la sintaxis de otro shell, como tcsh, zsh o ksh? El sufijo sh indica un script de shell, no "ejecutar el script en este shell".

3 votos

@fd0 La línea de shebang se encargará de eso.

4 votos

@user14492- Cuando invocas un script de shell como shell shell_script, la línea de shebang se ignora. El shell lee la primera línea como un comentario.

27voto

Shimon Doodkin Puntos 101

Alternativamente, también podrías hacer

cd /directorio/con/ejecutable
chmod +x ejecutable     # solo requerido si tu archivo no es ejecutable
./ejecutable

lo cual también ejecutará el archivo ejecutable con su shell especificado (si está especificado en el shebang #!/bin/(shell)

1 votos

En la pregunta dice "ejecutar un script que he descargado en línea". Los archivos descargados de Internet suelen tener permisos establecidos en 644.

0 votos

@patrix creo que no solo se trata de Internet, sino de cada archivo que se copia de otro sistema de archivos al tuyo debido a la máscara predeterminada en tu cuenta.

21voto

TMB Puntos 2187
chmod u+x myfile.sh
cp myfile.sh /usr/local/bin

editar ~/.bash_profile y agregar la siguiente línea:

alias myfile=./myfile.sh

ejecutar el siguiente comando en la línea de comandos:

source ~/.bash_profile

entonces podrás ejecutar tu archivo como un programa

$ myfile

0 votos

En Ubuntu, cualquier script en tu ruta puede ser ejecutado siempre y cuando tengas #~/bin/sh, mientras que en OSX, el script debería tener la extensión .sh y un alias para cada uno de ellos. :-O

14voto

stwykd Puntos 205

Siga estos pasos para ejecutar los archivos de script:

  1. Haga clic derecho en el archivo .sh.

  2. Pase el cursor sobre Abrir con.

  3. Elija Otros....

  4. Debería estar en la carpeta de Aplicaciones. Abra la carpeta de Utilidades y seleccione Terminal.app.

  5. Si no puede seleccionar Terminal.app, cambie las aplicaciones habilitadas de Aplicaciones Recomendadas a Todas las Aplicaciones. Está en la parte inferior de la ventana.

  6. Si desea abrir cada archivo .sh con Terminal.app, marque Abrir siempre con.

  7. Pulse el botón Abrir en la esquina inferior derecha de la ventana.

4voto

Matt DeKrey Puntos 111

La razón por la que no funciona después de descargarlo es que los permisos del archivo no lo permiten. Para habilitar los permisos de ejecución, abre Terminal y escribe chmod 755 /ruta/al/script. En lugar de escribir la ruta completa, puedes arrastrar el script a la ventana de Terminal desde Finder. Luego, para ejecutarlo, simplemente escribe /ruta/al/script. Nuevamente, puedes arrastrar y soltar el archivo en la ventana de Terminal. Esta sintaxis debería ejecutar el script utilizando el shell correcto definido en la primera línea del script.

0 votos

Mi archivo.sh se abre en el editor de texto con el que lo creé. ¿Cómo puedo abrirlo en Terminal en su lugar? He establecido los permisos correctos.

0 votos

@bart necesitas agregar la extensión .command para ejecutar un script directamente dentro de Finder.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X