J'ai quelques scripts fonctionnels et je veux copier à /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 sauvegarder sans extension?
Non, ce n'est pas une bonne pratique, vous devriez garder vos scripts sans extension. Notez que les scripts faisant partie de paquets n’ont pas d’extension . Sh , c’est-à-dire update-grub , pas update-grub.sh. Si vous n'êtes toujours pas convaincu, sachez que Guide de style de Google Shell dit:
Les exécutables ne doivent avoir aucune extension (fortement recommandé) ou une extension .sh. Les bibliothèques doivent avoir une extension .sh et ne doivent pas être exécutables.
PS Vous n'êtes pas obligé 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 par défaut dans $PATH
. Par conséquent, les scripts qui y sont placés peuvent être exécutés comme toute autre commande Shell.
J'appuie la recommandation d'utiliser ~/bin
qui est automatiquement ajouté à votre $PATH
, comme Sergey , a déclaré. Ou /usr/local/bin
, qui peut déjà être sur le PATH
. Toutefois:
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 emballez, laissez définitivement de côté l'extension.
Il suffit de mettre la ligne suivante en haut du fichier:
#!/bin/bash
Donc, ce fichier sera automatiquement tapé: Script Shell sans aucune extension!
N'oubliez pas de donner l'autorisation d'exécution pour le fichier.
Pour mettre le script de manière à pouvoir être exécuté par commande directe, visitez: Où devrais-je placer mon script afin de pouvoir l'exécuter par une commande directe?