215 votes

Comment exécuter un fichier .sh ou .command dans un terminal ?

J'ai toujours voulu pouvoir exécuter un script que j'ai téléchargé en ligne directement à partir du Finder mais le simple fait de double cliquer sur le fichier ne fonctionne pas.

255voto

Maximus Points 4695

Ouvrez le terminal, tapez dans sh /path/to/file et appuyez sur la touche Entrée.

Plus vite, c'est taper sh et un espace, puis faites glisser le fichier vers la fenêtre et relâchez l'icône n'importe où sur la fenêtre.

4 votes

Que pensez-vous qu'il se passera si le shell script est écrit dans la syntaxe d'un autre shell, tel que tcsh, zsh ou ksh ? Le suffixe sh désigne un script de l'interpréteur de commandes et non "exécuter le script dans cet interpréteur de commandes".

3 votes

@fd0 Le ligne shebang s'en chargera.

4 votes

@user14492- Lorsque vous invoquez un shell script en tant que shell shell_script la ligne shebang est ignorée. L'interpréteur de commandes lit la première ligne comme un commentaire.

34voto

F0RR Points 337

Vous pouvez également faire

cd /directory/with/executable
chmod +x executable     # only required if your file is not already executable
./executable

qui lancera également le fichier exécutable avec le shell spécifié (s'il est spécifié dans le shebang #!/bin/(shell)

1 votes

Dans la question, il est dit "exécuter un script que j'ai téléchargé en ligne". Les fichiers téléchargés sur Internet ont généralement des autorisations définies sur 644.

0 votes

@patrix je pense que ce n'est pas seulement internet, mais chaque fichier qui est copié d'un autre système de fichiers sur le vôtre à cause du masque par défaut de votre compte.

21voto

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

editar ~/.bash_profile et ajoutez la ligne suivante :

alias myfile=./myfile.sh

exécutez la ligne de commande suivante :

source ~/.bash_profile

vous pourrez alors exécuter votre fichier comme un programme

$ myfile

0 votes

Dans Ubuntu tout script dans votre chemin peut être exécuté aussi longtemps que vous avez #~/bin/sh alors que dans OSX le script devrait avoir .sh et une alias pour chacun d'entre eux. :-O

14voto

stwykd Points 215

Suivez ces étapes pour exécuter les fichiers script :

  1. Cliquez avec le bouton droit de la souris sur le fichier .sh.

  2. Passez la souris sur Ouvrir avec .

  3. Choisissez Autre... .

  4. Vous devriez être dans le Applications dossier. Ouvrez Utilitaires et sélectionnez Terminal.app.

  5. Si vous ne pouvez pas sélectionner Terminal.app, changez les applications activées de Applications recommandées a Toutes les applications . Il se trouve en bas de la fenêtre.

  6. Si vous voulez ouvrir chaque .sh avec Terminal.app, cochez Toujours ouvert avec .

  7. Appuyez sur le bouton Ouvrir dans le coin inférieur droit de la fenêtre.

8voto

David M Points 51

La question du PO était de savoir comment exécuter le script. dans le Finder . Aucune des solutions Unix ci-dessus ne fait cela. La solution consiste à définir l'extension du fichier en .command, par exemple, script.command. Un double-clic sur ce fichier lancera Terminal et exécutera le script. (Assurez-vous que les permissions sont définies pour être exécutables).

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