web-dev-qa-db-fra.com

Comment rendre ce fichier.sh exécutable via un double clic?

Tout d'abord, j'utilise Mac.

Ensuite, je dois exécuter ce "fichier.sh" que nous appellerons. Chaque fois que je dois l'exécuter, je dois ouvrir Terminal et taper:

cd /Users/Jacob/Documents/folderWithFileInIt
bash file.sh

C'est bon, mais j'ai l'impression que ce serait beaucoup plus rapide si je faisais exécuter le fichier en double-clic, vous ne pensez pas?

Ma question est donc la suivante: comment rendre ce fichier exécutable via un double clic?

Mes idées étaient soit:

a) tapez quelque chose comme chmod dans terminal et modifiez les autorisations?

b) créer un fichier, y mettre le code que j'ai écrit ci-dessus ^ et ensuite rendre ce fichier exécutable?

c) faire une automatisation en quelque sorte?

Quel est le meilleur moyen ou existe-t-il un moyen encore meilleur? Aussi, s'il vous plaît expliquer autant que vous le pouvez, je suis nouveau sur Terminal. Merci.

148
Jacob

Par défaut, les fichiers *.sh sont ouverts dans un éditeur de texte (Xcode ou TextEdit). Pour créer un script Shell à exécuter dans Terminal lorsque vous l'ouvrez, nommez-le avec l'extension "commande", par exemple, file.command. Par défaut, ils sont envoyés à Terminal, qui exécutera le fichier en tant que script Shell.

Vous devrez également vous assurer que le fichier est exécutable, par exemple:

chmod +x file.command

Sans cela, Terminal refusera de l'exécuter.

Notez qu'il n'est pas nécessaire que le script commence par un préfixe #! dans ce scénario spécifique, car Terminal est spécialement chargé de l'exécuter avec votre shell par défaut. (Vous pouvez bien sûr ajouter une ligne #! si vous souhaitez personnaliser le shell utilisé ou si vous voulez vous assurer de pouvoir l'exécuter à partir de la ligne de commande tout en utilisant un autre shell.)

Notez également que Terminal exécute le script Shell sans modifier le répertoire de travail. Vous devrez commencer votre script avec une commande cd si vous en avez réellement besoin pour être exécuté avec un répertoire de travail particulier.

323
Chris Page

Supprimez l'extension, puis double-cliquez dessus. La plupart des scripts shell du système sont comme ça. Tant qu'il a un Shebang cela fonctionnera.

30
NobleUplift

Vous pouvez simplement dire au Finder d’ouvrir le fichier .sh dans Terminal:

  1. Sélectionnez le fichier
  2. Obtenir des informations (cmd-i) dessus
  3. Dans la section "Ouvrir avec", choisissez "Autre…" dans le menu contextuel.
  4. Choisissez Terminal comme application

Cela aura exactement le même effet que de le renommer en .command sauf que vous n'avez pas à le renommer :)

  1. Terminal de lancement
  2. Tapez -> nano nomFichier
  3. Coller le contenu du fichier batch et le sauvegarder
  4. Tapez -> chmod + x nomfichier
  5. Il va créer un fichier exe maintenant, vous pouvez double-cliquer dessus.

Le nom du fichier doit figurer entre guillemets. Depuis que j'utilise Mac-> Dans mon cas, le contenu de fichier de commandes est

cd/Utilisateurs/votreNom/Documents/SeleniumServer

Java -jar Selenium-server-standalone-3.3.1.jar -role hub

Cela fonctionnera à coup sûr

5
Manish