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 aucune option similaire à Clic Droit Ouvrir Avec Autre Application... Terminal.

Comment puis-je ouvrir ce fichier dans le terminal?

0 votes

Est-ce que ce script vise à configurer des variables d'environnement pour une utilisation ultérieure ?

0 votes

Vous n'avez pas besoin de l'extension de fichier. C'est agréable à 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 pouvez 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 ceci à:

./votrescript.sh

15 votes

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

101 votes

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

6 votes

En réalité, vous pouvez utiliser . /chemin/vers/votrescript.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 depuis le 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 dans 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 cela, nous devons définir les autorisations du fichier pour l'exécution en utilisant chmod. chmod +x filename.sh ou chmod 755 filename.sh

0 votes

Je n'ai pas de fenêtre contextuelle! L'IDE s'ouvre immédiatement, ce n'est pas une fenêtre contextuelle

60voto

italianfoot Points 709

Ouvrez un terminal et naviguez vers le 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 commande. Utilisez sh .sh si cela nécessite une autorisation. Utilisez chmod +x /path/to/yourscript.sh ou faites un clic droit et changez les autorisations pour tous.

0 votes

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

0 votes

Essayé d'exécuter un script sh sur Alpine. Alors que d'autres réponses ne fonctionnaient pas, celle-ci l'a fait.

33voto

mataal Points 318

Prérequis

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

  1. Cliquez avec le bouton 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 obtenu 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 un 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 et déposez le fichier .sh dans le terminal puis appuyez sur Entrée

La manière dont les professionnels le font

  1. Ouvrez Applications -> Accessoires -> Terminal
  2. Localisez le fichier .sh

    • Utilisez les commandes ls et cd
    • ls affichera les fichiers et dossiers dans le dossier actuel. Essayez : 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 du nom du dossier
    • Si vous êtes entré dans un dossier par erreur, exécutez cd .. pour remonter d'un niveau
  3. Exécutez le fichier .sh

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

      ./script.sh

Pourquoi faire de manière compliquée ?

Le terminal propose une large gamme d'outils puissants accessibles en tapant les commandes. Les professionnels localisent le fichier .sh en tapant ls et cd. Une fois dans le bon dossier actuel, 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 ex. "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 juste 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

Et ensuite ouvrir le fichier comme ceci :

shotwell ps_logo2.png

10 votes

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

0 votes

Il est bon de savoir que j'ai réussi à le faire de la manière dont le font les professionnels dès mon premier essai. Je pensais que c'était la manière dont les utilisateurs de base le faisaient.

23voto

imjustmatthew Points 341

Sous 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 à côté 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 ont changé cela, je n'ai pas réussi à exécuter quoi que ce soit.

2 votes

Voici 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