web-dev-qa-db-fra.com

Que signifie cette syntaxe?

Je suis nouveau sur le terminal et j'essaie d'apprendre à l'utiliser.

Que font ces lignes? Et comment fonctionnent-ils?

echo -n "Today's date is: "
date +"%A, %B %-d, %Y"
16
Unknown person
$ type echo
echo is a Shell builtin

ce qui signifie que la commande echo fait partie du programme bash (en supposant que vous utilisez bash)

-n est une option, voyons ce qu'elle fait

$ help echo
Write arguments to the standard output
...
-n  do not append a newline

Alors, quand on lance la ligne:

zanna@monster:~$ echo -n "Today's date is: "
Today's date is: zanna@monster:~$ 

Hmm, ça n'a pas l'air très bon, parce qu'il n'y a pas de nouvelle ligne après le texte imprimé. Nous y reviendrons.

$ type date
date is /bin/date

ah, donc la commande date est un programme séparé. Qu'est ce que ça fait?

$ man date
Display the current time in the given FORMAT, or set the system date.

Les caractères après la commande date sont des options de formatage (qui doivent être précédés de +) - différentes parties de la date sont spécifiées (par exemple, %A est le nom complet du jour de la semaine - voir le reste de man date pour la liste complète. options)

$ date +"%A, %B %-d, %Y"
Tuesday, February 7, 2017

Donc, si nous mettons les commandes ensemble dans un script, puis exécutons le script, nous obtiendrons

Today's date is: Tuesday, February 7, 2017

Agréable! Si vous voulez le même effet dans un terminal, vous pouvez utiliser un point-virgule pour séparer les deux commandes au lieu d'une nouvelle ligne:

$ echo -n "Today's date is: " ; date +"%A, %B %-d, %Y"
Today's date is: Tuesday, February 7, 2017
75
Zanna

Vous devriez commencer par les pages de manuel, la commande man. Tapez simplement man <command> pour obtenir des informations sur un <command>. Naviguer dans man n’est pas très intuitif, mais il existe de nombreux guides, par exemple https://wiki.gentoo.org/wiki/Man_page/Navigate#Navigating_and_searching_man_pages .

Parties pertinentes de man echo et man date:

écho

echo [SHORT-OPTION]... [STRING]...

Echo the STRING(s) to standard output.

-n     do not output the trailing newline

Donc, il imprime la chaîne et ne va pas à la nouvelle ligne après celle (qui est le comportement par défaut), donc le résultat de la commande suivante sera imprimé sur le côté droit de la chaîne renvoyée.

rendez-vous amoureux

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

J'espère que c'est clair. N'hésitez pas à demander si non.

10
Melebius
echo -n "Today's date is: "

Il imprimera: La date d'aujourd'hui est:

date +"%A, %B %-d, %Y"

Cela affichera quelque chose comme ceci: mardi 7 février 2017

Conseil :

  1. utilisez la commande man ou --help pour en savoir plus sur les autres commandes.
    par exemple :

    man echo
    echo --help
    
  2. Essayez ces défis les défis sont vraiment bons pour vous aider à apprendre à faire des choses sur le terminal.

4
Avinash