ou seja, o echocomando faz parte do bashpróprio programa (supondo que você use o bash)
-n é uma opção, então vamos ver o que ele faz
$ help echo
Write arguments to the standard output
...
-n do not append a newline
Então, quando executamos a linha:
zanna@monster:~$ echo -n "Today's date is: "
Today's date is: zanna@monster:~$
Hmm, isso não parece muito bom, porque não há nova linha após o texto impresso. Voltaremos a isso.
$ type date
date is /bin/date
ah, então o datecomando é um programa separado. O que isso faz?
$ man date
Display the current time in the given FORMAT, or set the system date.
Os caracteres após o datecomando são opções de formato (que devem ser precedidos por +) - partes diferentes da data são especificadas (por exemplo, %Aé o nome completo do dia da semana - consulte o restante man datepara obter a lista completa de opções)
$ date +"%A, %B %-d, %Y"
Tuesday, February 7, 2017
Portanto, se juntarmos os comandos em um script e executar o script, obteremos
Today's date is: Tuesday, February 7, 2017
Agradável! Se você deseja o mesmo efeito em um terminal, pode usar um ponto e vírgula para separar os dois comandos em vez de uma nova linha:
$ echo -n "Today's date is: " ; date +"%A, %B %-d, %Y"
Today's date is: Tuesday, February 7, 2017
Eu diria que este está faltando uma explicação para o que o sinal de mais antes que o argumento é
Délisson Junio
@ DélissonJunio editado, mas Melebius' resposta mostra isso melhor com a página homem citação direta
Zanna
@ Zanna, eu não sou o OP, mas o que chamou minha atenção foi o fato de o plus parecer estranho, pois eu acho que o bash interpretaria tudo entre aspas como um argumento, sem incluir o plus. Mas acho que essa é outra questão.
Délisson Junio
2
Na verdade, você também pode colocar o sinal de mais dentro das aspas. O Bash tem uma maneira estranha de executar textos citados e adjacentes juntos, por exemplo, cd "$ x" / output ou até cd nospace / "with space" / nospace
echo [SHORT-OPTION]...[STRING]...Echo the STRING(s) to standard output.-n do not output the trailing newline
Portanto, ele imprime a sequência e não segue para a nova linha (que é o comportamento padrão); portanto, a saída do próximo comando será impressa no lado direito da sequência repetida.
encontro
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 esteja claro. Sinta-se livre para perguntar se não.
Muito obrigado. Tenho outra pergunta: já existe uma função interna para mostrar a data no terminal?
Pessoa desconhecida
@ Zanna Não é realmente uma pergunta nova, está relacionada a uma pergunta que eu fiz.
Pessoa desconhecida
11
@Desconhecido, se você deseja que a data seja exibida no terminal por padrão, essa é realmente uma pergunta completamente diferente de "o que esse código faz" porque você precisaria editar a variável PS1 (ou talvez isso possa ser feito com o aplicativo do terminal configurações - sobre que eu sou ignorante), que está fora do escopo deste post
Zanna
11
@Unknownperson datefaz show de data no terminal (interface de linha de comando). Se você quiser algo mais (como o que Zanna sugere), faça uma nova pergunta.
Melebius
4
echo -n "Today's date is: "
Ele será impresso: a data de hoje é:
date +"%A, %B %-d, %Y"
Irá imprimir algo como isto: terça-feira, 7 de fevereiro de 2017
Conselho :
use manou --helpcomando para saber mais sobre outros comandos.
por exemplo :
$ man date && man echo
na concha.Respostas:
ou seja, o
echo
comando faz parte dobash
próprio programa (supondo que você use o bash)-n
é uma opção, então vamos ver o que ele fazEntão, quando executamos a linha:
Hmm, isso não parece muito bom, porque não há nova linha após o texto impresso. Voltaremos a isso.
ah, então o
date
comando é um programa separado. O que isso faz?Os caracteres após o
date
comando são opções de formato (que devem ser precedidos por+
) - partes diferentes da data são especificadas (por exemplo,%A
é o nome completo do dia da semana - consulte o restanteman date
para obter a lista completa de opções)Portanto, se juntarmos os comandos em um script e executar o script, obteremos
Agradável! Se você deseja o mesmo efeito em um terminal, pode usar um ponto e vírgula para separar os dois comandos em vez de uma nova linha:
fonte
Você deve começar com páginas de manual, o comando
man
. Basta digitarman <command>
para obter informações sobre a<command>
. A navegaçãoman
não é muito intuitiva, mas existem muitos guias, por exemplo, https://wiki.gentoo.org/wiki/Man_page/Navigate#Navigating_and_searching_man_pages .Partes relevantes
man echo
eman date
:eco
Portanto, ele imprime a sequência e não segue para a nova linha (que é o comportamento padrão); portanto, a saída do próximo comando será impressa no lado direito da sequência repetida.
encontro
Espero que esteja claro. Sinta-se livre para perguntar se não.
fonte
date
faz show de data no terminal (interface de linha de comando). Se você quiser algo mais (como o que Zanna sugere), faça uma nova pergunta.Ele será impresso: a data de hoje é:
Irá imprimir algo como isto: terça-feira, 7 de fevereiro de 2017
Conselho :
use
man
ou--help
comando para saber mais sobre outros comandos.por exemplo :
Experimente estes desafios, os desafios são realmente bons para ajudá-lo a aprender a fazer as coisas no terminal.
fonte