Eliminar todos los trabajos programados antes de las 17:00 con atrm

Eliminar todos los trabajos programados antes de las 17:00 con atrm

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

  1. 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.
  2. No se permiten espacios alrededor =para una asignación de variable
  3. 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.

información relacionada