
Preciso de um script de shell que remova todos os trabalhos agendados antes das 17:00 com o nome de usuário como parâmetro posicional Foi isso que tentei fazer
#!/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
Responder1
- Você está usando aspas erradas no comando date. Você está usando aspas simples "curvas" (
‘...’
) em vez de crases (`...`
), mas use$(...)
em vez de crases. - Não são permitidos espaços ao redor
=
para uma atribuição de variável - O
+
não deve ser seguido de espaço.
Usar:currentTime=$( date +%k%M )
Também o nome da função que vocêdefinir( check_time_tu_run
)
não é o nome da função que vocêchamar( check_time_to_run
)
Existem outros erros: cole seu código emhttps://www.shellcheck.netpara obter mais assistência.