451 votes

Comment exécuter des scripts .sh ?

Chaque fois que j'ouvre un fichier .sh, il l'ouvre dans gedit au lieu du terminal. Je ne trouve pas d'option similaire à Clic droit Ouvrir avec Autre application... Terminal.

Comment puis-je ouvrir ce fichier dans le terminal ?

0 votes

Ce script vise-t-il à configurer des variables d'environnement pour une utilisation ultérieure?

0 votes

Vous n'avez pas besoin de l'extension de fichier. C'est bien de l'avoir mais ce n'est pas nécessaire. Le système d'exploitation ne regarde pas l'extension de fichier. Il regarde les données

8 votes

Meh, si vous réécrivez foo.sh en ruby, vous pourrez toujours utiliser le fichier .sh pour lancer ruby foo.rb

685voto

Rob Gray Points 1556

Donnez l'autorisation d'exécution à votre script :

chmod +x /chemin/vers/votrescript.sh

Et pour exécuter votre script :

/chemin/vers/votrescript.sh

Comme . fait référence au répertoire actuel : si votrescript.sh se trouve dans le répertoire actuel, vous pouvez simplifier en :

./votrescript.sh

15 votes

+1 seule réponse pour montrer comment ajouter des autorisations d'exécution dans un terminal.

101 votes

Si vous faites bash /chemin/vers/votrescript.sh alors vous n'avez pas besoin de chmod +x

6 votes

En fait, vous pouvez utiliser . /chemin/vers/votre_script.sh si le script doit configurer certaines variables d'environnement.

106voto

Craig Smitham Points 522

Vous devez marquer les scripts shell comme exécutables pour les exécuter à partir du gestionnaire de fichiers :

  1. Faites un clic droit sur votre fichier .sh et sélectionnez Propriétés :

    entrer la description de l'image ici

  2. Dans l'onglet Autorisations, cochez Autoriser l'exécution du fichier en tant que programme :

    entrer la description de l'image ici

  3. Fermez la fenêtre Propriétés et double-cliquez sur le fichier. Une boîte de dialogue s'affichera vous donnant la possibilité d'exécuter le script dans un terminal :

    entrer la description de l'image ici

11 votes

Cela ne fonctionne pas sous Ubuntu 13.04. Continue à s'ouvrir dans gedit de toute façon, ne me demande jamais d'exécuter. Edit: Nvm, imjustmatthew répond à cela.

0 votes

Avant d'utiliser ceci, nous devons attribuer les permissions d'exécution au fichier en utilisant chmod. chmod +x nomdufichier.sh ou chmod 755 nomdufichier.sh

0 votes

Je n'ai pas de popup ! L'IDE s'ouvre directement, ce n'est pas un popup

60voto

italianfoot Points 709

Ouvrez un terminal et naviguez jusqu'au dossier où se trouve le fichier .sh. Ensuite, tapez :

sh .sh

2 votes

La meilleure façon d'ouvrir n'importe quelle application. Naviguez jusqu'au répertoire .sh puis ouvrez-le dans l'invite de commandes. Utilisez sh .sh. Si cela nécessite une autorisation, utilisez chmod +x /chemin/vers/votrescript.sh ou faites un clic droit et changez les autorisations pour tous.

0 votes

C'est ma méthode préférée de le faire. @DurgeshKumar bons conseils.

0 votes

A essayé d’exécuter un script sh sur alpine. Alors que d'autres réponses n'ont pas fonctionné, cela a marché.

33voto

mataal Points 318

Prérequis

Avant de pouvoir exécuter le fichier .sh, vous devez le rendre exécutable:

  1. Faites un clic droit sur le fichier
  2. Sélectionnez Propriétés
  3. Sélectionnez Autorisations
  4. Sélectionnez Autoriser l'exécution du fichier en tant que programme

Avertissement

Assurez-vous de faire confiance à la source à partir de laquelle vous avez téléchargé le fichier. Il pourrait s'agir d'un virus.

La manière très simple

  1. Double-cliquez sur le fichier
  2. Cliquez sur Exécuter dans le terminal

Cela pose problème. Le terminal se fermera immédiatement et vous ne pourrez pas voir la sortie.

La manière simple

  1. Ouvrez Applications -> Accessoires -> Terminal
  2. Faites glisser le fichier .sh dans le terminal et appuyez sur Entrée

La manière dont les professionnels procèdent

  1. Ouvrez Applications -> Accessoires -> Terminal
  2. Trouvez où se trouve le fichier .sh

    • Utilisez les commandes ls et cd
    • ls listera les fichiers et dossiers dans le dossier actuel. Essayez-le: tapez "ls" et appuyez sur Entrée.
    • Une fois que vous voyez le dossier dans lequel vous voulez aller, exécutez cd, suivi d'un espace, suivi d'un nom de dossier
    • Si vous entrez dans un dossier que vous ne vouliez pas, exécutez cd .. pour remonter d'un niveau
  3. Exécutez le fichier .sh

    • Une fois que vous pouvez voir par exemple script1.sh avec ls exécutez ceci:

      ./script.sh

Pourquoi faire de manière compliquée?

Le terminal dispose d'un ensemble d'outils puissants accessibles en tapant des commandes. Les professionnels trouvent le fichier .sh en tapant ls et cd. Une fois dans le dossier actuel correct, vous pouvez exécuter le script de cette manière:

./script1.sh

ou vous pouvez exécuter et rediriger la sortie vers un fichier:

./script1.sh > out.txt

ou vous pouvez filtrer la sortie pour des mots-clés (par exemple "pommes") puis rediriger vers un fichier:

./script1.sh | grep pommes > ./seulement-pommes

Il y a des milliers de choses que vous pouvez faire sur ce fichier en tapant quelques commandes.

Autre exemple, vous pouvez télécharger un fichier depuis Internet avec une simple commande:

wget www.google.com/images/logos/ps_logo2.png

Puis ouvrez le fichier comme ceci:

shotwell ps_logo2.png

10 votes

Je ne suis pas sûr que la manière dont les professionnels le font soit correcte, c'est plutôt une question de la manière simple la manière avancée (pour le contrôle de la sortie).

0 votes

Il est bon de savoir que j'ai réussi à le faire comme le font les professionnels dès mon premier essai. Je pensais que c'était la façon d'un utilisateur basique.

23voto

imjustmatthew Points 341

Sur Ubuntu 13.04, les fichiers exécutables ouverts dans Nautilus sont désormais ouverts par défaut dans gedit plutôt que de demander à l'utilisateur de les exécuter. Pour activer le comportement classique, vous devez ajuster les préférences :

Nautilus Menu Édition Préférences Onglet Comportement Cliquez sur le bouton radio près de Demander à chaque fois.

0 votes

La personne qui a posé la question parle d'Ubuntu 10.10.

2 votes

Merci!!! Je ne sais pas pourquoi ils auraient changé cela, je n'arrivais pas à comprendre comment exécuter quoi que ce soit.

2 votes

Ceci est la bonne réponse pour les dernières versions d'Ubuntu.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X