
Necesito un script de shell que elimine todos los trabajos programados antes de las 17:00 con el nombre de usuario como parámetro posicional. Esto es lo que intenté hacer
#!/bin/bash
currentTime = ‘date + %k%M’
check_time_tu_run()
{
tempTime=$1
if
[ $tempTime -gt 000 -a $tempTime -lt 1700];
then
for i in `atq | awk '{print $1}'`;do atrm $i;done
else
echo “Action is not in the period of time”
fi
}
check_time_to_run $currentTime
Respuesta1
- Estás utilizando comillas incorrectas en el comando de fecha. Estás usando comillas simples "rizadas" (
‘...’
) en lugar de comillas invertidas (`...`
), pero úsalas$(...)
en lugar de comillas invertidas. - No se permiten espacios alrededor
=
para una asignación de variable - No debe
+
ir seguido de un espacio.
Usar:currentTime=$( date +%k%M )
También el nombre de la función quedefinir( check_time_tu_run
)
no es el nombre de la función quellamar( check_time_to_run
)
Hay otros errores: pega tu código enhttps://www.shellcheck.netpara obtener más ayuda.