如何避免在bash脚本中输出换行符

时间:2015-05-22 18:36:59

标签: linux bash shell ubuntu

我有一个像这样的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

我该怎么做才能解决这个问题?

1 个答案:

答案 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