Veja o comando date
. Você pode colocar a data / hora atual em uma string como esta:
now=$(date)
Ou restrinja isso apenas para o horário:
now=$(date +%H:%M:%S)
Em um script, você coloca esses valores em uma matriz:
#!/bin/bash
# declare array
set -a times
# Loop over the directories
for d in dir1 dir2 dir3
do
# Add the current time at the end of the array
times[${#times[*]}]=$(date +%H:%M:%S)
# Perform rsync (replace next two by actual code)
echo rsync $d
sleep 2
done
# Loop over array of start times, "${!times[@]}" produces a 0-based sequence of indices over the array
for i in "${!times[@]}";
do
# Print the time ( "$((i+1))" increments the number because unlike computers, humans counts from 1)
printf "Rsync of dir #%s started at %s\n" "$((i+1))" "${times[$i]}"
done
Existem muitas opções para formatar a data. Se você for mais longe no seu script, o mais útil é %s
, que dá "segundos desde a Época", o que é muito útil (e realmente a única forma segura) de calcular durações.