¿Cómo puedo saber si un guión está escrito bash
o sh
?
La primera línea del script no es útil aquí, ya que en Linux, los scripts bash tienen esta línea:
#!bin/sh
En realidad, hay muchas distribuciones donde /bin/sh
es bash (tal vez /bin/sh
es un enlace a /bin/bash
esas distribuciones), y no Bourne Shell. Entonces, si trato de ejecutar un script que está escrito en bash en, por ejemplo, FreeBSD, el resultado no está definido, ya que /bin/sh
en FreeBSD es Bourne Shell, y no bash.
¿Hay alguna manera fácil de identificar si un script es bash o sh?
¿Hay algunas cosas distintivas en la sintaxis?
bash
shell
shell-script
usuario1115057
fuente
fuente
Respuestas:
En realidad, las líneas shebang significan algo que algunas distribuciones como Debian no usan
bash
para/bin/sh
perodash
.La solución más simple para determinar si un script de shell es bash es usarlo
checkbashism
; consulte losman checkbashisms
detalles.checkbashisms
debe estar empaquetado por diferentes distribuciones, para Debian está en eldevscripts
paquete: Fedora endevscripts-minimal
(solía estar enrpmdevtools
) y OpenSuSe enrpmlint-mini
fuente