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
