On Wednesday 12 August 2009 04:11:18 pm MAbeeTT wrote:
> estoy viendo unos scripts que cargan un firmware propietario par ami
> impresora, en un punto hace:
>
>    if cat $fw > $_dev; then
>     log "todo bien"
>    else
>     log "falla algo"
>   fi
>
> donde $fw es la imagen del firmware y el dispositivo-puerto. O sea
> podería ser equivalente a
> si_anda ( cat imagen.raw > /dev/usblp0) ; then
>   log "salto en una pata"
> else
>   log "algo no funciona"
> fi
>
> El script tiene el encabezado #!/bin/sh y si /bin/sh apunta a dash, no
> acusa falla ni dice andar bien.
>
> ¿Cómo sería una manera más prolija de hacer lo mismo? ¿ Estará en dash la
> falla?

lo que copiaste aca anda perfecto en dash, de todas formas un script que 
comienza /bin/sh deber usar _sólo_ las features POSIX de shell.

Si el script rompe tenés dos opciones:
-si vas a usar algún feature que va más allá entonces poné explicitamente en 
el header el nombre del shell que estés usando para tener esa feature 
extra(bash,dash,ash,korn,zsh o lo que sea)
-migrar el código para que sea POSIX compilant y dejar /bin/sh

Todos los shell son POSIX compilant pero también casi todos tienen cosas que 
exceden a POSIX.

-- 
Luciano

Responder a