2017-08-31 14 views
0

J'ai hérité une collection moyenne de scripts où certains d'entre eux commencent par deux shebangs, comme ceci:Pourquoi quelqu'un utiliserait-il deux shebang dans un script shell?

#!/bin/sh 
#!/bin/bash 
[do stuff] 

Y at-il une raison valable pour l'utilisation de cette construction? Dans mon expérience, n'importe quel Unix ne respectera la première ligne que comme un shebang, et la deuxième ligne sera la première ligne du script, que l'interpréteur sh va ignorer comme étant un commentaire. Dois-je supposer que c'est une erreur du programmeur? Y a-t-il une différence, disons, de compatibilité ou de portabilité si je devais simplement supprimer le deuxième shebang?

+1

Voir: https://superuser.com/q/502984 – leftjoin

Répondre

2

Vous avez raison: il ne sert à rien d'avoir deux lignes shebang. Seul le premier sera utilisé.

Peut-être que c'était une erreur lors d'un refactoring automatisé précédent. Il suffit de regarder dans votre système de contrôle de révision - je suis absolument certain que celui qui a fait cela a laissé un commentaire clair et détaillé expliquant leur raison d'être.