我有一个像这样的bash脚本:
#!/bin/bash
while true;
do
(printf %s "$(date '+%A %W %Y %X')"; echo -n ", " ; printf %s "$(ps -eo pcpu,pmem,comm | grep statsd)") >> tope.txt;
sleep 2;
done
我想要的是将此命令的输出输入到tope.txt中,如下所示:
Friday 20 2015 11:28:21, 0.0 0.4 /usr/libexec/systemstatsd
但我得到的是多线输出。 :
Friday 20 2015 11:28:21
,
0.0 0.4 /usr/libexec/systemstatsd
我该怎么做才能解决这个问题?
答案 0 :(得分:1)
只需使用一个printf语句。
while true
do
printf '%s, %s\n' "$(date '+%A %W %Y %X')" \
"$(ps -eo pcpu,pmem,comm | grep statsd)" >> tope.txt
sleep 2;
done
您可能还需要考虑在循环外部移动文件重定向,以避免在循环中重复open
。