Como combinar mensagem de texto com mensagem do sistema?

5

Por exemplo, quero escrever um comando que mostre a hora e a data do sistema.

Então eu quero que a saída seja assim

The system time is Mon Jan 01 01:01:01 AST 2011.

Eu sei o comando que mostra que a hora do sistema é date , mas como adicionar "The system time is" na frente da saída?

deve ser echo The system time is + %#%@^ + date coisas assim?

    
por Ulysses 14.02.2018 / 17:46

6 respostas

14

Uma maneira simples seria:

printf "The system time is %s.\n" "$(date)"

Você também pode usar a interpolação de string:

echo "The system time is $(date)."
    
por 14.02.2018 / 17:49
12

Com a data do GNU:

date +"The system time is %a %b %d %T %Z %Y"
    
por 14.02.2018 / 17:51
8

Diretamente:

date +"The system time is %c"
  • %c - data e hora do local
por 14.02.2018 / 17:52
1

Com o Bash 4.2 e superior, você pode usar o printf:

printf "The system time is %(%a %b %d %T %Z %Y)T\n"
    
por 15.02.2018 / 08:55
0

Antigamente, fazíamos

echo The system time is 'date'.

Mas os backticks para a substituição de comandos estão obsoletos nos dias de hoje. Use isto ao invés

echo The system time is $(date).

(apenas 1 caractere extra para digitar). Você não precisa de aspas duplas fedorentas.

    
por 15.02.2018 / 02:32
0

Trivialmente:

echo -n 'The system time is '; date

Requer echo que respeita a opção -n , mas você teria que pesquisar profundamente para encontrar um sistema em que isso não ocorra (ou use printf ).

    
por 15.02.2018 / 13:49