Мне нужно сделать скрипт, который возвращает 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
, хотя он должен та же линия.
Как бы я это сделал?
Я предполагаю, что вы хотите создать действительный .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
, чей спецификатор формата не не нужно цитировать.
Напишите так:
{ printf "$(date '+%H:%M') "; speedtest-cli --csv; } >> output.csv
Или вот так:
echo "$(date '+%H:%M') $(speedtest-cli --csv)" >> output.csv
Ваш подход не сработал, потому что команда date
создает вывод с автоматически добавляемой новой строкой.
При заключении в $(...)
последняя новая строка не печатается.