2017-11-03 19 views
0

명령을 셸 스크립트 용 nohup에 넣으려고하면 스크립트가 실행되면 nohup 모드의 장치에서 파쇄 작업을 실행하고 실행해야합니다. 문제는 스크립트를 종료하지 않고 명령을 백그라운드에서 실행하도록 명령을 nohup 추가 할 때입니다. 또한 파쇄 작업이 완료되면 출력과 함께 성공 및 실패 메일을 보내려고합니다. 지금까지 시도 무엇 :쉘 스크립트에서 nohup 명령을 입력하는 방법은 무엇입니까?

nohup shred -n 2 "device name" > success.out 2>failure.out 
if [$? -eq 0] 
then 
    mail -s "success" -a success.out "EmailID" <. 
    exit 0 
else 
    mail -s "failure" -a failure.out "EmailID" <. 
    exit 1 
fi 

내가 첨부 파일이 성공 이메일을 얻고 N =하지만 첨부 파일이 읽을 수있는 형식이 아닌 것입니다, 다른 방법이있다?

+0

왜 스크립트 자체를'nohup'하지 않습니까? –

+0

또한, [[$? -eq 0]'은 항상 실패합니다 -'[0'는 명령이 아니며'[1'도 아닙니다. 공백을 사용해야합니다.'[''명령 이름이므로'[$?'를 실행할 수 없으므로'ls ~'를 실행할 수 있습니다. 비슷하게,']'는'['명령의 마지막 인자가 될 필요가 있습니다; 그것은 다른 문자열에 smooshed 수 없습니다. –

답변

-1

"스크립트가 백그라운드에서 명령을 종료하고 실행하지 않습니다.".

당신은 스크립트에 배경을 알리지 않습니다. &을 추가하십시오. 그래서

:

nohup shred -n 2 "device name" & >success.out 2>failure.out 

는 그것을 할 것입니다.

+0

'$?'테스트는'shred'가 성공했는지 여부를 여전히 볼 수 없습니다. –