我需要编写一个脚本,将 2 个命令返回到文件。
但我希望它们位于文件的同一行上。
我想要使用的第一个命令是speedtest-cli --csv
,第二个命令是date '+%H:%M'
我在网上搜索了一下,发现了这一点:
{ 日期'+%H:%M' ; speedtest-cli --csv;} >> 输出.csv;
但是当我使用它时,输出文件包含以下内容:
21:18
11458,MyTheValentinus,Roubaix,2017-12-15T20:18:43.049067Z,34.53116198582131,32.416,20496907.000490207,3872939.885024341
但必须在同一条线上。
我该如何做呢?
答案1
我假设你想产生一个有效.csv
的C奥玛s分开五值,而不是将时间与第一个单元格的值一起放在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
,其格式说明符不需要加引号。
答案2
这样写:
{ printf "$(date '+%H:%M') "; speedtest-cli --csv; } >> output.csv
或者像这样:
echo "$(date '+%H:%M') $(speedtest-cli --csv)" >> output.csv
您的方法不起作用,因为该date
命令生成的输出会自动附加一个换行符。
当包装在 中时$(...)
,不会打印最后的换行符。