0 votes

Problème d'exécution d'un fichier shell sur Mac OS

Je suis nouveau sur Mac OS, j'ai un .sh qui contient quelques instructions pour démarrer le serveur Laravel, le serveur React Native Metro, ngrok, etc.

Lorsque j'exécute avec :

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

J'obtiens l'erreur suivante :

The file /Users/gabriel/Desktop/proyectos/laravelapp.com/laravelappcom/scripts/cd /Users/gabriel/Desktop/proyectos/laravelapp.com && php artisan serve does not exist.
The file /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 does not exist.
The file /Users/gabriel/Desktop/proyectos/laravelapp.com/laravelappcom/scripts/ngrok http 8000 does not exist.
The file /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 does not exist.
The file /Users/gabriel/Desktop/proyectos/laravelapp.com/laravelappcom/scripts/cd /Users/gabriel/Desktop/proyectos/laravelapp.com && php artisan websockets:serve does not exist.

Mon script est simple, les emplacements sont exacts, pour chaque ligne je veux ouvrir un terminal et exécuter les actions suivantes sur ce même terminal Y a-t-il quelque chose que je ne fais pas correctement ?

Mon 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"

1voto

nohillside Points 82672

Au lieu d'essayer d'ouvrir cinq terminaux (ce qui ne fonctionnera pas parce que Terminal suppose que tout ce que vous passez comme argument est un fichier), vous pouvez mettre toutes les commandes directement dans votre 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 l'un des php , ngrok ou npx sont bloquants, ajoutez un & à la fin de la commande pour l'exécuter en arrière-plan.

1voto

glenn jackman Points 1869

Examinons le open page de manuel :

NAME
     open – open files and directories

SYNOPSIS
     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] file ... [--args arg1 ...]
DESCRIPTION
     The open command opens a file (or a directory or URL), just as if you had double-clicked
     the file's icon. If no application name is specified, the default application as
     determined via LaunchServices is used to open the specified files.

"cd /Users/gabriel/Desktop/proyectos/laravelapp.com && php artisan serve" n'est pas un nom de fichier.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X