Esta é uma pergunta de 2 partes.
Cenário: Este script está em um cronjob. Caso não exista uma pasta, o sistema nos envia um e-mail que abre um ticket que nos avisa que a pasta não está disponível. Temos que fazer login manualmente e remover a pasta anterior atm.
Eu gostaria que pudéssemos executar o script manualmente e remover a pasta anterior pressionando "Y" ou continuar pressionando a tecla "Enter", enquanto estamos logados e executamos o script manualmente.
Isso é o que eu tenho até agora...
#-- check to see if cache folder exists
{ echo "Checking to see if ...";
echo "${wDir}/${client%/}/.ftp-vendor-scripts/cache exists ... "; echo ""; } >> "$log"
if [ ! -d "${wDir}"/"${client%/}"/.ftp-vendor-scripts/cache ]; then
echo "Directory - ${wDir}/${client%/}/.ftp-vendor-scripts/cache DOES NOT exists - Failed ..." >> "$log";
if [ ******** this script is being executed manually ******* ]; then
echo "Would you like to delete the ${wDir}/${client%/}/.ftp-vendor-scripts folder?"
echo "Press \"Y\" to delete the ${wDir}/${client%/}/.ftp-vendor-scripts."
echo "Press \"Enter\" to continue without deleting the .ftp-vendor-scripts folder."
else
echo "Directory - ${wDir}/${client%/}/.ftp-vendor-scripts/cache DOES NOT exists - Failed ..." | mail -s "${wDir}/${client%/}/.ftp-vendor-scripts/ca$
fi
else
echo "Directory - ${wDir}/${client%/}/.ftp-vendor-scripts/cache exists - Success ..." >> "$log";
fi
Você precisa de algo assim:
O script acima é
POSIX
compatível e verificado quanto a erros comshellcheck
. Ele verificará se é executado no modointeractive
ounon interactive
, possivelmente viacron
e agirá de acordo. Eu testei combash
,dash
e .Busybox ash
FreeBSD