Data com texto para arquivo

0

Estou tentando enviar um texto para um arquivo:

'date +"%H:%M" development' > log

Exemplo: desenvolvimento 12:12

Mas isso canaliza date +"%H:%M" development e não 12:12 development

    
por Karl Morrison 16.02.2017 / 14:01

2 respostas

4

Existem duas maneiras de realizar o resultado desejado.

O caminho errado - o sistema analisa a linha e alimenta o 'desenvolvimento' como um argumento para 'data'. Como o aplicativo 'data' não tem esse argumento, ele gera um erro útil.

$ date +"%H:%M" development
date: extra operand ‘development’
Try 'date --help' for more information.

Solução # 1: use formatação de data

$ date +"%H:%M development"
07:10 development

Solução 2: use Substituição de comando

$ echo $(date +"%H:%M") development
07:10 development
    
por user535733 16.02.2017 / 14:15
2

Parece que você está usando echo ou printf ou algum outro comando para redirecionar a saída para o arquivo de log; caso contrário, você receberia uma mensagem de erro como:

bash: date +"%H:%M" development: command not found

Se este for o caso, você desejaria usar a substituição de comando para obter a saída do comando date e também evitar o uso de uma cotação strong, ' ' , em torno de sua cadeia. O seguinte irá funcionar:

echo "$(date +'%H:%M development')" > log

ou

echo "$(date +'%H:%M) development" > log

Se você estiver usando apenas date sem echo etc, inclua a sequência 'development' na string de formatação de data, a string de formatação pode ser citada com ' ou " , já que não é 't expandido pelo bash, mas pelo comando date :

date +"%H:%M development" > log

ou

date +'%H:%M development' > log
    
por Arronical 16.02.2017 / 14:18