Question Comment exécuter des fichiers .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 ouvrir ce fichier dans le terminal?


246
2018-05-01 02:39


origine


Ce script vise-t-il à configurer des variables env pour une utilisation ultérieure? - Rob
Vous ne devriez pas utiliser d'extensions sur des scripts. À un moment donné, vous constaterez peut-être qu'une langue différente est plus adaptée à la tâche que votre script en cours effectue. Et puis vous avez un problème. Est-ce que vous conservez l'ancien nom, avec une extension complètement trompeuse, ou le renommez-vous, en ayant éventuellement à éditer beaucoup d'endroits où votre script est utilisé? - geirha
Vous n'avez pas besoin de l'extension de fichier. C'est bien d'avoir mais n'est pas nécessaire. Le système d'exploitation ne regarde pas l'extension de fichier. Il regarde les données - ActionParsnip
Meh, si vous réécrivez foo.sh dans ruby, vous pouvez toujours utiliser le fichier .sh pour lancer ruby foo.rb - glenn jackman
Dans Dolphin, vous pouvez appuyer sur F4 et une console s'ouvre - Motte001


Réponses:


Autorisez l'exécution de votre script:

chmod +x /path/to/yourscript.sh

Et pour exécuter votre script:

/path/to/yourscript.sh

Depuis . fait référence au répertoire en cours: if yourscript.sh est dans le répertoire en cours, vous pouvez simplifier cela pour:

./yourscript.sh

377
2018-05-01 03:18



+1 seulement pour afficher l'ajout de droits d'exécution dans un terminal uniquement. - Hailwood
Si tu fais bash /path/to/yourscript.sh alors vous n'avez pas besoin chmod +x - Aleksandr Levchuk
En fait, vous pouvez utiliser . /path/to/yourscript.sh si le script doit configurer certaines variables d'environnement. - Rob
Personne ne mentionne le traditionnel: ./path/to/yourscript.sh (sans l'espace après .)? Je trouve que celui-ci est le plus simple et le plus facile à utiliser ... Mais de toute façon, voici mon alternative qui devrait faire presque la même chose que ./ serait, même si je ne vois pas pourquoi vous n'utiliseriez pas ./: (FILENAME=~/rem4space.sh;SLL=$(cat $FILENAME|head -1|sed 's:^#!\(.*\):\1:g');[ ! -z $SLL ] && exec $SLL $FILENAME;sh $FILENAME) ... modifier FILENAME à votre goût. Notez également que sh sera utilisé s'il n'y a pas d'alternative. - MiJyn


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 .sh fichier et sélectionnez Propriétés:

    enter image description here

  2. dans le Autorisations onglet, chèque Autoriser l'exécution du fichier en tant que programme:

    enter image description here

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

    enter image description here


72
2018-05-01 03:02



Bon w / screenshots - gd1
Cela ne fonctionne pas dans Ubuntu 13.04. Continue à ouvrir dans gedit de toute façon, ne me demande jamais d'exécuter. Edit: Nvm, imjustmatthew répond à ceci. - mpen
Avant de l'utiliser, nous devons autoriser l'exécution du fichier à l'aide de chmod. chmod + x nomfichier.sh ou chmod 755 nomfichier.sh - Arvind Rawat
Je n'ai pas de popup IDE est ouvert tout de suite, pas une popup - Green
@ DanielMöller, voici la réponse à votre question. askubuntu.com/questions/38661/how-do-i-run-sh-files/… - Akhilesh Dhar Dubey


Prérequis

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

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

Attention

Assurez-vous de faire confiance à la source d'où provient le fichier. Ce pourrait être un virus.

La manière très simple

  1. Double-cliquez sur le fichier
  2. Cliquez sur run dans le terminal

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

La manière simple

  1. Ouvrir les applications -> Accessoires -> Terminal
  2. Glissez et déposez le fichier .sh dans le terminal et appuyez sur Entrée

La façon dont les professionnels le font

  1. Ouvrir les applications -> Accessoires -> Terminal
  2. Trouver où le fichier .sh

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

    • Une fois que vous pouvez voir par exemple script1.sh avec ls lance ça:

      ./script.sh

Pourquoi est-ce que c'est compliqué?

Le terminal dispose d'un riche ensemble d'outils puissants accessibles en tapant les commandes. Les professionnels localisent le fichier .sh en tapant ls et cd. Une fois que vous êtes dans le bon dossier en cours vous pouvez exécuter le script comme ceci:

./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 les mots-clés (par exemple "pommes") puis rediriger vers un fichier:

./script1.sh | grep apples > ./only-apples

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

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

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

Et puis ouvrez le fichier comme ceci:

shotwell ps_logo2.png

22
2018-05-01 02:52



Je ne suis pas sûr que La façon dont les professionnels le font est correct, c'est plus un cas de la manière simple la avancé (pour le contrôle de la sortie) façon - Hailwood


Ouvrez un terminal et accédez au dossier où se trouve le .sh fichier est situé. Puis tapez:

sh <name of file>.sh

18
2017-12-20 07:43





Sur Ubuntu 13.04, les fichiers exécutables ouverts dans Nautilus sont maintenant ouverts par défaut dans gedit plutôt que d'inviter l'utilisateur à 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.


15
2018-06-10 21:41



La personne qui a posé la question parle d'Ubuntu 10.10 - edwin
Je vous remercie!!! Je ne sais pas pourquoi ils changeraient cela, ne pourraient pas comprendre comment exécuter quoi que ce soit. - mpen
C'est la bonne réponse pour les derniers ubuntus. - gaRex
Comment allez-vous à Nautilus en 15.10? - Yaakov Ainspan


Allez dans le répertoire où le .sh le fichier est en utilisant cd. Dans cet exemple, j'ai stocké mon sh déposer comme ~/Desktop/shell_practice/test.sh

d'abord faire pwd pour savoir où vous êtes et si elle revient /home/username (où username est votre vrai nom d'utilisateur), vous pouvez exécuter

cd Desktop/shell/practice

Si vous semblez être ailleurs, vous pouvez utiliser le chemin absolu

cd ~/Desktop/shell/practice

ou

cd $HOME/Desktop/shell/practice

ou même

cd /home/$USER/Desktop/shell/practice

Ce sont toutes des façons de décrire le même endroit. Une fois que vous avez atteint l'emplacement de votre script, tapez

ls

Si vous pouvez voir le sh fichier dans la sortie, vous pouvez utiliser chmod pour le rendre exécutable. Dans mon cas, souvenez-vous que le nom de fichier est test.shdonc je courrais

chmod u+x test.sh

Maintenant que nous sommes dans le même répertoire que le script, nous devons spécifier au shell que nous voulons exécuter le fichier en indiquant son emplacement ./ (le répertoire actuel suivi d'un séparateur de chemin, pour le distinguer du nom de fichier). Pour exécuter mon fichier, je tapez:

./test.sh

Si votre script a été écrit correctement, il fonctionnera sans erreur ...

Voici un exemple en direct: Here is live example


5
2017-12-03 11:14



Cela a fonctionné pour moi pour installer Netbeans sur Ubuntu - RuD3B0y
Wb, @ RuD3B0y, j'ai essayé de garder les meilleures réponses pour les noobs, pas de contenu high tech, si vous avez quelques modifications, vous êtes les bienvenus. - TheExorcist


2 étapes principales

  1. dans le terminal, utilisez gedit pour écrire et enregistrer le script avec l'extension ".sh" sur le bureau. (mais n'importe quel éditeur de texte peut être utilisé)

  2. Ouvrez Nautilus et cliquez avec le bouton droit sur le fichier script.sh.

    • sous propriétés, case à cocher "autoriser l'exécution du fichier .."

    • dans le menu Nautilus, cliquez sur le fichier, puis sur les préférences, puis sur le comportement

    • cochez la case "Exécuter les fichiers texte exécutables lorsqu'ils sont ouverts".

Maintenant, lorsque vous double-cliquez sur le fichier sur le bureau, il doit être exécuté. Pas besoin de . ou ./


3
2017-10-24 14:24