ce qui signifie que la echocommande fait partie du bashprogramme lui-même (en supposant que vous utilisez bash)
-n est une option, voyons donc ce qu'il fait
$ help echo
Write arguments to the standard output
...
-n do not append a newline
Donc, quand nous courons 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 bien, car 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 datecommande 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 datecommande sont des options de format (qui doivent être précédées de +) - différentes parties de la date sont spécifiées (par exemple, %Ale nom complet du jour de la semaine - voir le reste de man datepour la liste complète des 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
Je dirais qu'il manque une explication de ce qu'est le signe plus avant l'argument
Délisson Junio
@ DélissonJunio édité, mais la réponse de Melebius le montre mieux avec la citation de page de manuel directe
Zanna
@Zanna Je ne suis pas l'OP, mais ce qui a attiré mon attention, c'est le fait que le plus semble bizarre car je pense que bash interpréterait tout entre les guillemets comme un argument, sans inclure le plus. Mais je suppose que c'est une autre question
Délisson Junio
2
Vous pouvez également mettre le plus à l'intérieur des guillemets. Bash a une façon étrange de courir ensemble le texte cité et adjacent, par exemple cd "$ x" / sortie ou même cd nospace / "avec espace" / nospace
echo [SHORT-OPTION]...[STRING]...Echo the STRING(s) to standard output.-n do not output the trailing newline
Il imprime donc la chaîne et ne passe pas à la nouvelle ligne après cela (ce qui est le comportement par défaut), donc la sortie de la commande suivante sera imprimée sur le côté droit de la chaîne en écho.
Date
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 sinon.
Merci beaucoup. J'ai une autre question: existe-t-il déjà une fonction intégrée pour afficher la date dans le terminal?
Personne inconnue
@Zanna Ce n'est pas vraiment une nouvelle question, elle est liée à une question que j'ai posée.
Personne inconnue
1
@Unknownperson si vous voulez que la date soit affichée dans le terminal par défaut, c'est vraiment une question complètement différente de "qu'est-ce que ce code fait" parce que vous auriez besoin de modifier la variable PS1 (ou peut-être que cela peut être fait avec l'application terminal paramètres - à ce sujet, je l'ignore) qui est hors de portée de ce post
Zanna
1
@Unknownperson datefait date de l' exposition dans le terminal (interface de ligne de commande). Si vous voulez quelque chose de plus (comme ce que suggère Zanna), veuillez poser une nouvelle question.
Melebius
4
echo -n "Today's date is: "
Il sera imprimé: La date d'aujourd'hui est:
date +"%A, %B %-d, %Y"
Il imprimera quelque chose comme ceci: mardi 7 février 2017
Conseil :
utilisez manou --helpcommande pour en savoir plus sur les autres commandes.
par exemple :
man echo
echo --help
Essayez ces défis, les défis sont vraiment bons pour vous aider à apprendre à faire des choses sur le terminal.
$ man date && man echo
à la coquille.Réponses:
ce qui signifie que la
echo
commande fait partie dubash
programme lui-même (en supposant que vous utilisez bash)-n
est une option, voyons donc ce qu'il faitDonc, quand nous courons la ligne:
Hmm ça n'a pas l'air très bien, car il n'y a pas de nouvelle ligne après le texte imprimé. Nous y reviendrons.
ah donc la
date
commande est un programme séparé. Qu'est ce que ça fait?Les caractères après la
date
commande sont des options de format (qui doivent être précédées de+
) - différentes parties de la date sont spécifiées (par exemple,%A
le nom complet du jour de la semaine - voir le reste deman date
pour la liste complète des options)Donc, si nous mettons les commandes ensemble dans un script, puis exécutons le script, nous obtiendrons
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:
la source
Vous devriez commencer par les pages de manuel, la commande
man
. Tapez simplementman <command>
pour obtenir des informations sur a<command>
. La navigationman
n'est pas très intuitive, 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
etman date
:écho
Il imprime donc la chaîne et ne passe pas à la nouvelle ligne après cela (ce qui est le comportement par défaut), donc la sortie de la commande suivante sera imprimée sur le côté droit de la chaîne en écho.
Date
J'espère que c'est clair. N'hésitez pas à demander sinon.
la source
date
fait date de l' exposition dans le terminal (interface de ligne de commande). Si vous voulez quelque chose de plus (comme ce que suggère Zanna), veuillez poser une nouvelle question.Il sera imprimé: La date d'aujourd'hui est:
Il imprimera quelque chose comme ceci: mardi 7 février 2017
Conseil :
utilisez
man
ou--help
commande pour en savoir plus sur les autres commandes.par exemple :
Essayez ces défis, les défis sont vraiment bons pour vous aider à apprendre à faire des choses sur le terminal.
la source