将 ps 和 Date 在一行上输出到文件中?

将 ps 和 Date 在一行上输出到文件中?

我正在构建一个基本的日志记录脚本,并且想要捕获的输出ps up 12345

到目前为止我有:

DATE2=`date +%Y-%m-%d:%H:%M:%S`
echo ${DATE2} >> $filename

ps up 12345 --no-headers >> $filename

这给了我想要的信息,但在三行上(1 =日期,2 = ps 3 =空行的输出)

然而,理想情况下我想用一行捕获这些内容。有没有办法将它们组合起来(并忽略空行)?

答案1

您也可以将 ps 输出保存到变量,并使用 echo 或 printf 写入它。

DATE2=`date +%Y-%m-%d:%H:%M:%S`
PS_RESULT=`ps up 12345 --no-headers`

printf "%s: %s" "${DATE2}" "${PS_RESULT}" >> $filename

旁注,习惯它可能会很有用,$(command)而不是`command`何时可以使用它,因为此语法可以嵌套。

答案2

一种解决方案是不在第一个字符串的末尾打印换行符。您可能需要一个空间。

echo -n "${DATE2} " >>"$filename"

相关内容