Sono nuovo al terminale e sto cercando di imparare come usarlo.
Cosa fanno queste linee? E come funzionano?
echo -n "Today's date is: "
date +"%A, %B %-d, %Y"
Sono nuovo al terminale e sto cercando di imparare come usarlo.
Cosa fanno queste linee? E come funzionano?
echo -n "Today's date is: "
date +"%A, %B %-d, %Y"
Risposte:
$ type echo
echo is a shell builtin
significato, il echo
comando fa parte del bash
programma stesso (supponendo che tu usi bash)
-n
è un'opzione, quindi vediamo cosa fa
$ help echo
Write arguments to the standard output
...
-n do not append a newline
Quindi quando eseguiamo la linea:
zanna@monster:~$ echo -n "Today's date is: "
Today's date is: zanna@monster:~$
Hmm che non sembra molto buono, perché non c'è una nuova riga dopo il testo stampato. Torneremo su questo.
$ type date
date is /bin/date
ah quindi il date
comando è un programma separato. Che cosa fa?
$ man date
Display the current time in the given FORMAT, or set the system date.
I caratteri dopo il date
comando sono opzioni di formato (che devono essere precedute da +
) - vengono specificate diverse parti della data (ad esempio %A
è il nome completo del giorno della settimana - vedere il resto di man date
per l'elenco completo delle opzioni)
$ date +"%A, %B %-d, %Y"
Tuesday, February 7, 2017
Quindi se mettiamo insieme i comandi in uno script e quindi eseguiamo lo script otterremo
Today's date is: Tuesday, February 7, 2017
Bello! Se si desidera lo stesso effetto in un terminale, è possibile utilizzare un punto e virgola per separare i due comandi anziché una nuova riga:
$ echo -n "Today's date is: " ; date +"%A, %B %-d, %Y"
Today's date is: Tuesday, February 7, 2017
Dovresti iniziare con le pagine di manuale, il comando man
. Basta digitare man <command>
per ottenere informazioni su a <command>
. La navigazione in man
non è molto intuitiva ma ci sono molte guide, ad esempio https://wiki.gentoo.org/wiki/Man_page/Navigate#Navigating_and_searching_man_pages .
Parti rilevanti di man echo
e man date
:
echo [SHORT-OPTION]... [STRING]...
Echo the STRING(s) to standard output.
-n do not output the trailing newline
Quindi stampa la stringa e non passa alla nuova riga dopo (che è il comportamento predefinito), quindi l'output del comando successivo verrà stampato sul lato destro della stringa eco.
date [OPTION]... [+FORMAT]
FORMAT controls the output. Interpreted sequences are:
%A locale's full weekday name (e.g., Sunday)
%B locale's full month name (e.g., January)
%d day of month (e.g., 01)
%Y year
By default, date pads numeric fields with zeroes. The following optional flags may follow '%':
- (hyphen) do not pad the field
Spero sia chiaro. Sentiti libero di chiedere in caso contrario.
date
fa mostra data nel terminale (CLI). Se vuoi qualcosa di più (come quello che suggerisce Zanna), per favore fai una nuova domanda.
echo -n "Today's date is: "
Stampa: la data di oggi è:
date +"%A, %B %-d, %Y"
Stamperà qualcosa del genere: martedì 7 febbraio 2017
Consiglio :
utilizzare man
o --help
comando per saperne di più su qualsiasi altro comando.
per esempio :
man echo
echo --help
Prova queste sfide le sfide sono davvero utili per aiutarti a imparare a fare le cose sul terminale.
$ man date && man echo
al guscio.