J'ai toujours voulu pouvoir exécuter un script que j'ai téléchargé en ligne directement à partir du Finder, mais un double clic sur le fichier ne fonctionne pas.
macos
terminal
command-line
bash
Maximus
la source
la source
sh
désigne un script shell "n'exécutez pas le script dans ce shell".shell shell_script
la ligne shebang est ignorée. Le shell lit la première ligne sous forme de commentaire.sh /path/to/file
une sémantiquement différente de l'alternative/path/to/file.sh
?Alternativement, vous pouvez aussi faire
qui exécutera également le fichier exécutable avec son shell spécifié (si spécifié dans le shebang
#!/bin/(shell)
la source
éditez
~/.bash_profile
et ajoutez la ligne suivante:exécutez la ligne de commande suivante:
vous pourrez alors exécuter votre fichier en tant que programme
$ myfile
la source
#~/bin/sh
, tandis que, dansOSX
le script, il doit avoir une.sh
extension et unalias
pour chacun d'eux. : -OSuivez ces étapes pour exécuter les fichiers de script:
Cliquez avec le bouton droit sur le fichier .sh.
Survolez Ouvrir avec .
Choisissez Autre ... .
Vous devriez être dans le dossier Applications . Ouvrez le dossier Utilitaires et sélectionnez Terminal.app.
Si vous ne pouvez pas sélectionner Terminal.app, modifiez les applications activées d'applications recommandées à toutes les applications . C'est au bas de la fenêtre.
Si vous voulez ouvrir tous les
.sh
fichiers avec Terminal.app, cochez Toujours ouvrir avec .Appuyez sur le bouton Ouvrir dans le coin inférieur droit de la fenêtre.
la source
La raison pour laquelle cela ne fonctionne pas après le téléchargement est que les autorisations sur les fichiers ne le permettent pas. Pour activer les autorisations d'exécution, ouvrez Terminal et tapez
chmod 755 /path/to/script
. Au lieu de saisir le chemin d'accès complet, vous pouvez faire glisser le script dans la fenêtre du terminal à partir du Finder. Ensuite, pour exécuter, il suffit d'entrer/path/to/script
. Encore une fois, vous pouvez faire glisser le fichier et le déposer dans la fenêtre du terminal. Cette syntaxe doit exécuter le script en utilisant le shell approprié, tel que défini à la première ligne du script.la source