es decir, el echocomando es parte del bashprograma en sí (suponiendo que use bash)
-n es una opción, así que veamos qué hace
$ help echo
Write arguments to the standard output
...
-n do not append a newline
Entonces cuando corremos la línea:
zanna@monster:~$ echo -n "Today's date is: "
Today's date is: zanna@monster:~$
Hmm, eso no se ve muy bien, porque no hay una nueva línea después del texto impreso. Volveremos a esto.
$ type date
date is /bin/date
ah, entonces el datecomando es un programa separado. ¿Qué hace?
$ man date
Display the current time in the given FORMAT, or set the system date.
Los caracteres después del datecomando son opciones de formato (que deben ir precedidas por +): se especifican diferentes partes de la fecha (por ejemplo, %Ael nombre completo del día de la semana; consulte el resto man datepara ver la lista completa de opciones)
$ date +"%A, %B %-d, %Y"
Tuesday, February 7, 2017
Entonces, si juntamos los comandos en un script y luego ejecutamos el script, obtendremos
Today's date is: Tuesday, February 7, 2017
¡Agradable! Si desea el mismo efecto en un terminal, puede usar un punto y coma para separar los dos comandos en lugar de una nueva línea:
$ echo -n "Today's date is: " ; date +"%A, %B %-d, %Y"
Today's date is: Tuesday, February 7, 2017
Yo diría que este no se encuentra una explicación para lo que el signo más antes de que el argumento es
Délisson Junio
@ DélissonJunio editó, pero la respuesta de Melebius lo muestra mejor con la cita directa de la página del manual
Zanna
@Zanna No soy la OP, pero lo que me llamó la atención fue el hecho de que la ventaja parece extraña, ya que creo que bash interpretaría todo entre comillas como un argumento, sin incluir la ventaja. Pero supongo que esta es otra pregunta
Délisson Junio
2
De hecho, también puede poner el signo más entre comillas. Bash tiene una forma extraña de ejecutar juntos texto citado y adyacente, por ejemplo, cd "$ x" / output o incluso cd nospace / "with space" / nospace
echo [SHORT-OPTION]...[STRING]...Echo the STRING(s) to standard output.-n do not output the trailing newline
Por lo tanto, imprime la cadena y no pasa a la nueva línea después de eso (que es el comportamiento predeterminado), por lo que la salida del siguiente comando se imprimirá en el lado derecho de la cadena con eco.
fecha
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
Espero que esté claro. No dude en preguntar si no.
Muchas gracias. Tengo otra pregunta: ¿ya hay una función incorporada para mostrar la fecha en la terminal?
Persona desconocida
@Zanna En realidad no es una pregunta nueva, está relacionada con una pregunta que he hecho.
Persona desconocida
1
@ Persona desconocida si desea que la fecha se muestre en el terminal de forma predeterminada, esa es realmente una pregunta completamente diferente a "¿qué hace este código" porque necesitaría editar la variable PS1 (o tal vez se puede hacer con la aplicación del terminal configuración - sobre eso soy ignorante) que está fuera del alcance de esta publicación
Zanna
1
@Unknownperson datehace la fecha muestran en (interfaz de línea de comandos) terminal. Si desea algo más (como lo que sugiere Zanna), haga una nueva pregunta.
Melebius
4
echo -n "Today's date is: "
Se imprimirá: la fecha de hoy es:
date +"%A, %B %-d, %Y"
Imprimirá algo como esto: martes 7 de febrero de 2017
Consejo :
use mano --helpcomando para saber más sobre cualquier otro comando.
p.ej :
man echo
echo --help
Pruebe estos desafíos Los desafíos son realmente buenos para ayudarlo a aprender a hacer cosas en la terminal.
$ man date && man echo
en el caparazónRespuestas:
es decir, el
echo
comando es parte delbash
programa en sí (suponiendo que use bash)-n
es una opción, así que veamos qué haceEntonces cuando corremos la línea:
Hmm, eso no se ve muy bien, porque no hay una nueva línea después del texto impreso. Volveremos a esto.
ah, entonces el
date
comando es un programa separado. ¿Qué hace?Los caracteres después del
date
comando son opciones de formato (que deben ir precedidas por+
): se especifican diferentes partes de la fecha (por ejemplo,%A
el nombre completo del día de la semana; consulte el restoman date
para ver la lista completa de opciones)Entonces, si juntamos los comandos en un script y luego ejecutamos el script, obtendremos
¡Agradable! Si desea el mismo efecto en un terminal, puede usar un punto y coma para separar los dos comandos en lugar de una nueva línea:
fuente
Debe comenzar con las páginas del manual, el comando
man
. Simplemente escribaman <command>
para obtener información sobre a<command>
. La navegaciónman
no es muy intuitiva, pero hay muchas guías, por ejemplo https://wiki.gentoo.org/wiki/Man_page/Navigate#Navigating_and_searching_man_pages .Partes relevantes de
man echo
yman date
:eco
Por lo tanto, imprime la cadena y no pasa a la nueva línea después de eso (que es el comportamiento predeterminado), por lo que la salida del siguiente comando se imprimirá en el lado derecho de la cadena con eco.
fecha
Espero que esté claro. No dude en preguntar si no.
fuente
date
hace la fecha muestran en (interfaz de línea de comandos) terminal. Si desea algo más (como lo que sugiere Zanna), haga una nueva pregunta.Se imprimirá: la fecha de hoy es:
Imprimirá algo como esto: martes 7 de febrero de 2017
Consejo :
use
man
o--help
comando para saber más sobre cualquier otro comando.p.ej :
Pruebe estos desafíos Los desafíos son realmente buenos para ayudarlo a aprender a hacer cosas en la terminal.
fuente