Redireciona 2 comandos para um arquivo no mesmo script de linha

1

Eu preciso criar um script que retorne 2 comandos para um arquivo.

Mas eu gostaria que eles estivessem na mesma linha no arquivo.

O primeiro comando que eu quero usar é speedtest-cli --csv e o segundo comando é date '+%H:%M'

Eu pesquisei na internet e achei isso:

{ date '+%H:%M' ; speedtest-cli --csv;} >> output.csv;

Mas quando eu uso isso, o arquivo de saída contém isso:

21:18
11458,MyTheValentinus,Roubaix,2017-12-15T20:18:43.049067Z,34.53116198582131,32.416,20496907.000490207,3872939.885024341

enquanto precisa estar na mesma linha.

Como eu faria isso?

    
por Cyber_Star 15.12.2017 / 21:24

2 respostas

1

Suponho que você queira produzir um alpo .csv válido com c omma s eparated v em vez de ter o tempo junto com o primeiro valor de célula de speedtest-cli --csv juntos na primeira célula, então esses comandos devem ajudar (ambos fazendo a mesma coisa):

printf "%s,%s" $(date +%R) "$(speedtest-cli --csv)" >>output.csv
echo $(date +%R),"$(speedtest-cli --csv)" >>output.csv

date +%R pelo caminho é o mesmo que date +%H:%M , cujo especificador de formato não precisa ser citado.

    
por dessert 15.12.2017 / 22:05
1

Escreva assim:

{ printf "$(date '+%H:%M') "; speedtest-cli --csv; } >> output.csv

Ou assim:

echo "$(date '+%H:%M') $(speedtest-cli --csv)" >> output.csv

Sua abordagem não funcionou porque o comando date produz saída com uma nova linha anexada automaticamente.

Quando empacotado em $(...) , a última nova linha não é impressa.

    
por janos 15.12.2017 / 21:29