쉘 스크립트에서 사용하면 종료에 출력이 없습니다.

쉘 스크립트에서 사용하면 종료에 출력이 없습니다.

쉘 스크립트에 다음이 있습니다

fulloutput="<pre>$(df -h /;sudo shutdown -r +1 )</pre>"

나중에 스크립트에서 이 변수를 에코하지만(sendmail로 파이프되었지만 여기서는 관련이 없음) 닫기가 아닌 df 명령의 출력만 얻습니다.

나는 없이 시도했고 sudo, 또한 아래와 같이 명령을 분할해 보았습니다...

fulloutput="<pre>$(df -h /) $(sudo shutdown -r +1 )</pre>"

그러나 여전히 명령의 출력만 얻습니다 df.

shutdown이는 큰 문제는 아니지만 스크립트의 해당 부분이 성공적으로 실행되었다는 표시로 출력을 얻는 것이 좋을 것입니다 .

답변1

사용자 명령이 캡처를 대체합니다 stdout. 종료 메시지가 기록될 수 있습니다 stderr.

캡처되도록 리디렉션하려면 stderr다음 을 추가하십시오.stdout2>&1

$(df -h /; sudo shutdown -r +1 2>&1)

관련 정보