Devrais-je enregistrer mes scripts avec l'extension .sh?

54

J'ai des scripts fonctionnels et je veux les copier dans /usr/bin Je veux les utiliser comme commandes de terminal normales. Est-ce une bonne pratique de les utiliser avec l'extension .sh ou puis-je les enregistrer sans extension?

    
posée Patterson 27.07.2014 - 00:48
la source

3 réponses

64

Non, ce n'est pas une bonne pratique, vous devez conserver vos scripts sans extension. Notez que les scripts faisant partie de packages n'ont pas d'extension .sh , c'est-à-dire update-grub , pas update-grub.sh . Si vous n'êtes toujours pas convaincu, alors soyez avisé que Guide des styles de shell Google indique:

  

Les exécutables ne doivent avoir aucune extension (fortement préférée) ou une extension .sh. Les bibliothèques doivent avoir une extension .sh et ne doivent pas être exécutables.

PS Vous n'avez pas besoin de mettre votre script dans /bin . Vous pouvez créer le répertoire ~/bin et y placer votre script. Le répertoire ~/bin est inclus dans $PATH par défaut, donc les scripts peuvent être exécutés comme toute autre commande shell.

    
réponse donnée user280493 27.07.2014 - 01:00
la source
8

J'appuie la recommandation d'utiliser ~/bin qui est automatiquement ajouté à votre $PATH , comme l'a déclaré Sergey . Ou /usr/local/bin , qui peut déjà être sur le PATH . Cependant:

  • Vous le faites pour vous-même. Utilisez ce que vous êtes à l'aise avec. En fait, je dirais de conserver l’extension pour que vous sachiez que votre script est en cours d’exécution, car -
  • Les extensions sont rares dans /usr/bin . Dans mon système, je ne peux en trouver que deux:

    $ dpkg -S 'ls /usr/bin/*.sh'
    mtools: /usr/bin/amuFormat.sh
    gettext-base: /usr/bin/gettext.sh
    

    Donc, si vous empaquetez, oubliez définitivement l’extension.

réponse donnée muru 27.07.2014 - 01:05
la source
5

Il suffit de mettre la ligne suivante en haut du fichier:

#!/bin/bash

Ce fichier sera automatiquement saisi: Script de shell sans aucune extension!

N'oubliez pas de donner l'autorisation d'exécution du fichier.

Pour installer un script qui peut être exécuté directement par commande, consultez la page Où dois-je mettre mon script pour pouvoir l'exécuter par un commande directe?

    
réponse donnée Pandya 27.07.2014 - 07:39
la source

Lire d'autres questions sur les étiquettes