EL tema es que he hecho un script y me funciona, pero curiosamente me salta un error de vez en cuando (segun lo que haga):
Código:
(la línea 42 es la última del programa, no se si se refiere a la línea ese 42... en caso de qué si, que falta para finalizar el script?)samy@samylaptop:~/Escritorio$ sh motiontest.sh [: 42: 1: unexpected operator
No se a que se puede referir el error, a qué puede ser? Abajo teneis el script por si quereis echarle un ojo, es bastante simple.
Luego tengo otra pregunta. Cuando ejecuto el comando del script (el $motion) no me lo ejecuta en segundo plano aunque lo tenga puesto como
Código:
Si desde la terminal ejecuto mi script, me sale toda la salida del motion y cualquier cosa que ponga detrás (por ejemplo, un echo "alguna cosa"), no lo hace, ya que como está ejecutando el motion, el script no continúa. Cómo debería hacerlo para que se ejecutara el motion(llamado desde el script) y, a la vez, continuara el script? tengo que redireccionar obligatóriamente la salida (y que no sea la pantalla) para que pueda continuar?`motion &`
Muchas gracias por vuestra ayuda!
Código:
#!/bin/sh # Begin editable region RUTAMCONTROL="/home/samy/Escritorio/motioncontrol" RUTAMACTUAL="/home/samy/Escritorio/motionactual" RUTAMLOG="/home/samy/Escritorio/motionlog" # End editable region # Variables globales fecha=`date` # Fin variables globales echo "$fecha Empezando comprobación motion" >> $RUTAMLOG STATUS=`cat $RUTAMCONTROL` if [ $STATUS -eq 0 ] then ENCENDIDO=`ps aux| awk '{if($11 == "motion") print 1;}'` if [ $ENCENDIDO -eq 1 ] then echo " $fecha Apagando motion" >> $RUTAMLOG killall motion sleep 3 echo "0" > $RUTAMACTUAL else echo " $fecha Motion se mantendrá parado" >> $RUTAMLOG fi else if [ $STATUS -eq 1 ] then ENCENDIDO=`ps aux| awk '{if($11 == "motion") print 1;}'` if [ $ENCENDIDO -eq 1 ] then echo " $fecha Motion se mantendrá encendido" >> $RUTAMLOG else echo "1" > $RUTAMACTUAL echo " $fecha motion ha sido encendido" >> $RUTAMLOG `motion &` fi else echo "$fecha Error en la lectura del motion control" >> $RUTAMLOG fi fi