0 votos

Problema al ejecutar archivo shell en Mac OS

Soy nuevo en Mac OS, tengo un archivo .sh que contiene algunas instrucciones para iniciar el servidor Laravel, el servidor React Native Metro, ngrok, etc.

Cuando ejecuto lo siguiente:

bash /Users/username/Desktop/proyectos/wooloveapp.com/laravelapp/scripts/app-startup-mac.sh

Recibo el siguiente error:

El archivo /Users/gabriel/Desktop/proyectos/laravelapp.com/laravelappcom/scripts/cd /Users/gabriel/Desktop/proyectos/laravelapp.com && php artisan serve no existe.
El archivo /Users/gabriel/Desktop/proyectos/laravelapp.com/laravelappcom/scripts/cd /Users/gabriel/Desktop/proyectos/laravelapp.com && php artisan db:drop && php artisan db:create && php artisan migrate --seed no existe.
El archivo /Users/gabriel/Desktop/proyectos/laravelapp.com/laravelappcom/scripts/ngrok http 8000 no existe.
El archivo /Users/gabriel/Desktop/proyectos/laravelapp.com/laravelappcom/scripts/cd /Users/gabriel/Desktop/proyectos/woo && cd android && gradlew clean && cd .. && npx react-native run-android -- --reset-cache no existe.
El archivo /Users/gabriel/Desktop/proyectos/laravelapp.com/laravelappcom/scripts/cd /Users/gabriel/Desktop/proyectos/laravelapp.com && php artisan websockets:serve no existe.

Mi script es simple, las ubicaciones son exactas, para cada línea quiero abrir una terminal y ejecutar las acciones siguientes en esa misma terminal, ¿hay algo que estoy haciendo mal?

Mi script:

#!/bin/bash

open -a Terminal "cd /Users/gabriel/Desktop/proyectos/laravelapp.com && php artisan serve"

open -a Terminal "cd /Users/gabriel/Desktop/proyectos/laravelapp.com && php artisan db:drop && php artisan db:create && php artisan migrate --seed"

open -a Terminal "ngrok http 8000"

open -a Terminal "cd /Users/gabriel/Desktop/proyectos/woo && cd android && gradlew clean && cd .. && npx react-native run-android -- --reset-cache"

open -a Terminal "cd /Users/gabriel/Desktop/proyectos/laravelapp.com && php artisan websockets:serve"

0 votos

No se puede hacer open -a Terminal "comando de la terminal a ejecutar", pero probablemente no sea necesario esto.

1voto

En lugar de intentar abrir cinco Terminales (lo cual no funcionará porque Terminal asume que lo que pases como argumento es un archivo), puedes poner todos los comandos directamente en tu script.

#!/bin/bash
cd /Users/gabriel/Desktop/proyectos/laravelapp.com && php artisan serve
cd /Users/gabriel/Desktop/proyectos/laravelapp.com && php artisan db:drop && php artisan db:create && php artisan migrate --seed
ngrok http 8000
cd /Users/gabriel/Desktop/proyectos/woo/android && gradlew clean && cd .. && npx react-native run-android -- --reset-cache
cd /Users/gabriel/Desktop/proyectos/laravelapp.com && php artisan websockets:serve

Si alguna de las llamadas a php, ngrok o npx está bloqueando, agrega un & al final del comando para ejecutarlo en segundo plano.

1voto

Mark Puntos 6

Echemos un vistazo a la página open:

NOMBRE
     open – abrir archivos y directorios

SINOPSIS
     open [-e] [-t] [-f] [-F] [-W] [-R] [-n] [-g] [-j] [-h] [-u URL] [-s sdk]
          [-b bundle_identifier] [-a application] [--env VAR] [--stderr PATH] [--stdin PATH]
          [--stdout PATH] archivo ... [--args arg1 ...]
DESCRIPCIÓN
     El comando open abre un archivo (o un directorio o URL), como si hubieras hecho doble clic
     en el icono del archivo. Si no se especifica un nombre de aplicación, se utiliza la aplicación predeterminada
     determinada a través de LaunchServices para abrir los archivos especificados.

"cd /Users/gabriel/Desktop/proyectos/laravelapp.com && php artisan serve" no es un nombre de archivo.

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