1
votes

Comment exécuter un script bash en tant que commande?

J'ai un script bash que je voudrais exécuter globalement en tant que commande. Pour cela, j'ai déplacé le script vers /usr/local/bin/somefile.sh .

Je dois encore appeler une commande appelée somefile.sh . Je voudrais avoir un alias pour cette commande (par exemple, je voudrais juste appeler le script avec la commande sf ).

Comment faire ça?


3 commentaires

Solution la plus simple, renommez-le en sf .


J'ai déjà utilisé les alias. S'exécuterait-il encore, s'il ne s'agit plus d'un fichier .sh ? S'il n'y a pas de fin de fichier?


Oui. En fait, il est généralement recommandé pas pour donner aux scripts une extension .sh .


4 Réponses :


2
votes

Il existe différentes manières:

  • comme vous l'avez mentionné, utilisez alias , man alias pour plus de détails
  • créez un lien logiciel nommé sf vers votre vrai script
  • renommer votre script

2 commentaires

Existe-t-il un moyen de rendre la définition de l'alias permanente. Je ne veux pas le retaper après chaque redémarrage de mon ordinateur.


@ User12547645 ajoutez l'alias au fichier .bashrc.



2
votes

Et pour compléter la réponse de @Kent:

alias sf = '/ usr / local / bin / somefile.sh' utilisant un alias

ln -s somefile.sh / usr / local / bin / sf en utilisant un lien logiciel

mv /usr/local/bin/somefile.sh / usr / local / bin / sf en utilisant le changement de nom


1 commentaires

Existe-t-il un moyen de rendre la définition de l'alias permanente. Je ne veux pas le retaper après chaque redémarrage de mon ordinateur.



2
votes

Ouvrez votre fichier .bashrc situé dans ~ / .bashrc . Le fichier .bashrc est lu chaque fois que vous vous connectez au système. Ajoutez la ligne ci-dessous à la fin du fichier.

alias sf = '/ usr / local / bin / somefile.sh'

puis reconnectez-vous ou exécutez source .bashrc


0 commentaires

1
votes

Si vous êtes sur un système GNU, vous pouvez utiliser le système "alternatives":

/usr/local/bin/sf -> /etc/alternatives/somefile
/etc/alternatives/somefile -> /usr/local/bin/somefile.sh

Cela crée 2 liens symboliques:

dir=/usr/local/bin
sudo update-alternatives --install $dir/sf somefile $dir/somefile.sh 10


0 commentaires