Je travaille sur des scripts bash que je voudrais travailler avec mes systèmes Linux et FreeBSD.
Comme je travaille principalement sous Linux, je suis habitué à lancer mes scripts bash avec
#!/bin/bash
Mais cela ne fonctionne pas avec FreeBSD puisque bash réside dans /usr/local/bin/bash
. Donc, sur FreeBSD, mes scripts doivent commencer par
#!/usr/local/bin/bash
Alors, y a-t-il autre chose que je pourrais utiliser qui soit portable sur les deux systèmes? Je préfère ne pas conserver deux versions des scripts.
#!/usr/bin/env bash
devrait faire l’affaire, à condition que bash soit sur le chemin quelque part. Voir ici pour plus de détails.
Honnêtement, si vous voulez la portabilité, appelez comme / bin / sh et codez pour POSIX. C’est moins joli, mais vous rencontrerez moins de problèmes potentiels si vous le faites.
Utilisez #!/bin/sh
sur les deux systèmes si vous voulez être portable et éviter les bourdonnements.