저는 자동화된 서버 강화 스크립트를 작성하는 임무를 맡았는데, 그들에게 필요한 것 중 하나는 실행된 각 명령의 모든 출력에 대한 보고서였습니다. 오류 메시지를 문자열로 저장하고 텍스트 파일에 추가하고 싶습니다.
다음 명령을 실행한다고 가정해 보겠습니다.
/sbin/modprobe -n -v hfsplus
내 컴퓨터에서 이것을 실행하면 결과는 다음과 같습니다.
FATAL: Module hfsplus not found
이 오류 메시지를 문자열로 어떻게 저장할 수 있나요? 어떤 도움이라도 대단히 감사하겠습니다. 감사해요!
답변1
오류 명령을 리디렉션하여 이를 수행할 수 있습니다.
/sbin/modprobe -n -v hfsplus 2> fileName
스크립트로
#!/bin/bash
errormessage=$( /sbin/modprobe -n -v hfsplus 2>&1)
echo $errormessage
또는
#!/bin/bash
errormessage=`/sbin/modprobe -n -v hfsplus 2>&1 `
echo $errormessage
오류를 추가하려면 >>
대신 사용하십시오.>
"예기치 않은 토큰 '&' 근처 구문 오류" 오류를 방지하려면 2>&1
대신 사용하세요 .2> &1
답변2
bash 스크립트에 문자열로 저장하기만 하면 됩니다.
X=`/sbin/modprobe -n -v hfsplus 2>&1`
echo $X
명령을 실행할 때 메시지가 표시되므로 조금 더 나을 수 있습니다.
TMP=$(mktemp)
/sbin/modprobe -n -v hfsplus 2>&1 | tee $TMP
OUTPUT=$(cat $TMP)
echo $OUTPUT
rm $TMP
답변3
변수에 오류 메시지를 반환하는 것은 쉽습니다.
error=$(/sbin/modprobe -n -v hfsplus 2>&1 1>/dev/null)
echo $error
답변4
파일에 추가하려면 다음을 사용하십시오./sbin/modprobe -n -v hfsplus 2>> filename