Перенаправить 2 команды в файл в одной строке скрипта

Мне нужно сделать скрипт, который возвращает 2 команды в файл.

Но я бы хотел, чтобы они были в одной строке файла.

Первая команда, которую я хочу использовать, - speedtest-cli --csv, а вторая - date '+%H:%M'

. Я искал в интернете и нашел:

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

Но когда я использую это, выходной файл содержит следующее:

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

, хотя он должен та же линия.

Как бы я это сделал?

1
задан 15 December 2017 в 23:28

2 ответа

Я предполагаю, что вы хотите создать действительный .csv с c omma s разделенными v вместо того, чтобы иметь время вместе со значением первой ячейки из speedtest-cli --csv вместе в первой ячейке, тогда эти команды должны помочь (обе делают одно и то же):

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

date +%R, кстати, то же самое, что date +%H:%M, чей спецификатор формата не не нужно цитировать.

1
ответ дан 15 December 2017 в 23:28

Напишите так:

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

Или вот так:

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

Ваш подход не сработал, потому что команда date создает вывод с автоматически добавляемой новой строкой.

При заключении в $(...) последняя новая строка не печатается.

1
ответ дан 15 December 2017 в 23:28

Другие вопросы по тегам:

Похожие вопросы: