Na linha 7, em vez de [[ ... ]]
, você quer [ ... ]
ou test ...
(certificando-se de que sempre, sempre, sempre cite todas as variáveis - o que você já fez, mas com [
não é opcional e vale a pena repetir para todo mundo ler).
if [ -x "$p" ]
Na linha 14, você pode usar um documento aqui combinado com uma substituição de comando para substituir a substituição do processo:
done <<EOF
$(crontab -l | awk 'NR > 2 { print $6 }')
EOF
Dessa forma, você evita executar o loop while read p
em um subshell devido a piping nele, para que suas variáveis sobrevivam.
Isso deve ser feito para tornar esse POSIX compatível.