기본 로깅 스크립트를 작성 중이며 다음의 출력을 캡처하고 싶습니다.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"