Я пытаюсь получить месяц как число с помощью этой функции ниже:
get_month(){
# Converter o mes para numeros para criacao de arquivo
case "`date | awk '{print $2 }'`" in
Jan) MON=01 ;;
Feb) MON=02 ;;
Mar) MON=03 ;;
Apr) MON=04 ;;
May) MON=05 ;;
Jun) MON=06 ;;
Jul) MON=07 ;;
Aug) MON=08 ;;
Sep) MON=09 ;;
Oct) MON=10 ;;
Nov) MON=11 ;;
Dec) MON=12 ;;
esac
return $MON;
}
внутри второй функции ниже:
# Rotina de backup mensal
# Funcao para backup mensal dos arquivos
monthly_backup(){
# Get month to create files that depending this info.
get_month;
cd /root/bkp/weekly
if [[ $(date -d "-1 day" +%m) != $(date +%m) ]]; then
zip /root/bkp/monthly/connectivity_$MON.zip connectivity_* && rm -rf /root/bkp/weekly/connectivity_*
else
printf "Monthly nao rodara."
fi
if [ $? -eq 0 ]; then
printf '\e[92m Arquivos mensais zipados, e excluidos com sucesso \n'
else
printf '\e[92m Monthly Zip failed \n'
fi
}
но когда я вызываю функцию month_backup, мой файл создается как: connectivity_ вместо connectivity_01 , даже если я запускаю функция get_month перед запуском ежемесячно_backup.
Но если я запускаю функцию get_month непосредственно на моем терминале, я могу запустить echo $ MON и получить правильное значение, равное 01, у вас есть идея, как я могу справиться с этим? вероятно, это не инициализация, на самом деле я понятия не имею. спасибо !!