Scopri come formattare la data e l'ora da utilizzare in uno script di shell o come variabile insieme a diversi esempi di formato.
Ci sono molte volte in cui è necessario utilizzare la data nello script della shell, ad es. per dare un nome al file di registro, per passarlo come una variabile, ecc. Quindi abbiamo bisogno di un diverso formato di date che possa essere utilizzato come stringa o variabile nei nostri script. In questo articolo, vediamo come utilizzare la data nello script della shell e quali diversi tipi di formati puoi utilizzare.
- Controlla il comando timedatectl per gestire facilmente data e ora in Linux
Come usare la data nello script della shell?
È possibile utilizzare la data inserendo l'esecuzione della shell all'interno del comando. Ad esempio, se vuoi creare un file di registro inserendo la data corrente in esso, puoi farlo nel modo seguente –
root@kerneltalks # echo test > /tmp/`date +%d`.txt root@kerneltalks # ls -lrt -rw-r--r--. 1 root root 5 Sep 10 09:10 10.txt
Fondamentalmente devi passare l'identificatore di formato con +%
to date comando per ottenere il formato desiderato dell'output. Esiste una diversa fornitura del comando della data dell'identificatore.
Puoi persino salvare un formato data specifico in una variabile come –
root@kerneltalks # MYDATE=`date +%d.%b.%Y` root@kerneltalks # echo $MYDATE 10.Sep.2018
Variabili di formato diverse per il comando data
Questi identificatori di formato provengono dal comando date man
pagina :
%a locale’s abbreviated weekday name (e.g., Sun) %A locale’s full weekday name (e.g., Sunday) %b locale’s abbreviated month name (e.g., Jan) %B locale’s full month name (e.g., January) %c locale’s date and time (e.g., Thu Mar 3 23:05:25 2005) %C century; like %Y, except omit last two digits (e.g., 20) %d day of month (e.g, 01) %D date; same as %m/%d/%y %e day of month, space padded; same as %_d %F full date; same as %Y-%m-%d %g last two digits of year of ISO week number (see %G) %G year of ISO week number (see %V); normally useful only with %V %h same as %b %H hour (00..23) %I hour (01..12) %j day of year (001..366) %k hour ( 0..23) %l hour ( 1..12) %m month (01..12) %M minute (00..59) %N nanoseconds (000000000..999999999) %p locale’s equivalent of either AM or PM; blank if not known %P like %p, but lower case %r locale’s 12-hour clock time (e.g., 11:11:04 PM) %R 24-hour hour and minute; same as %H:%M %s seconds since 1970-01-01 00:00:00 UTC %S second (00..60) %T time; same as %H:%M:%S %u day of week (1..7); 1 is Monday %U week number of year, with Sunday as first day of week (00..53) %V ISO week number, with Monday as first day of week (01..53) %w day of week (0..6); 0 is Sunday %W week number of year, with Monday as first day of week (00..53) %x locale’s date representation (e.g., 12/31/99) %X locale’s time representation (e.g., 23:13:48) %y last two digits of year (00..99) %Y year %z +hhmm numeric timezone (e.g., -0400) %:z +hh:mm numeric timezone (e.g., -04:00) %::z +hh:mm:ss numeric time zone (e.g., -04:00:00) %Z alphabetic time zone abbreviation (e.g., EDT)
Usando le combinazioni di cui sopra puoi ottenere il formato della data desiderato come output da utilizzare nello script della shell! Puoi persino usare %n
per new-line e %t
per aggiungere una scheda negli output che per lo più non sono necessari poiché la utilizzerai come una singola stringa.
Esempi di formati di data diversi
Per tua comodità e pronto per l'uso, ho elencato di seguito le combinazioni per diversi formati di data.
root@kerneltalks # date +%d_%b_%Y 10_Sep_2018 root@kerneltalks # date +%D 09/10/18 root@kerneltalks # date +%F-%T 2018-09-10-11:09:51 root@kerneltalks # echo today is `date +%A` today is Monday root@kerneltalks # echo Its `date +%d` of `date +%B" "%Y` and time is `date +%r` Its 10 of September 2018 and time is 11:13:42 AM