我正在构建一个基本的日志记录脚本,并且想要捕获的输出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"