2
다음 출력은 로그에 출력되고 err_file에 대한 오류가있는 쉘 스크립트입니다. 그러나, 나는 특별히 stderr에 어떤 문장을 반향시키고 싶다. Pls는 내가 조건이 있지만 잘못 수 std 경우 수행하는 방법을 알아낼 수 없었다, 마지막의 출력을 보내려ksh 특정 문에 대한 stderr에 echo
#!/bin/ksh
echo "paramPassed: $0 $#"
err_file="error_file.txt"
new_file="new_file.txt"
exec >> ${new_file}
#exec >> ${new_file} 2>${err_file}
#exec >> ${new_file} 2>&1
if [ $# -eq 1 ]; then
username=$1
fi
userInfo=$(paramInfo ${username} | awk -F: '{print $2}')
echo ${userInfo}
rcp ${err_file} mtvst32:/rcs/ver34/${err_file}
if [ $? -ne 0 ]; then
#This doesn't work. Need the following to go to console
echo "UserInfo.SH FAILED copy to mtvst32" >> &2;
fi
도움이됩니다.
감사합니다. Dennis. 그게 효과가 있었어. 내가 실제로 원했던 것은 위의 같은 코드에서 exec >> $ {new_file} 2> & 1 이고 콘솔에 마지막 echo 문만 보내면됩니다. 거기에 어쨌든 할 수 있습니까? 즉, 모든 오류는 다음을 제외한 동일한 파일로 이동해야합니다. [$? -ne 0]; 다음 #이 작동하지 않습니다. 콘솔에 가려면 다음이 필요합니다. echo "UserInfo.SH FAILED copy to mtvst32"> & 2; 콘솔에 보내고 싶습니다. 그러나 위의 경우 리디렉션으로 인해 new_file로 이동합니다. 감사합니다. . – Kiran
@Kiran :'exec >> $ {new_file} 2> & 1' (나는 당신의 질문에 주석을 달았 기 때문에 그것을 무시했습니다) 전에'exec 3> & 2'를 추가하여 FD 2를 FD 3에 복사하십시오. 콘솔에 "echo"... "> & 3'이 표시됩니다. –
감미로운 .. Dennis에게 감사드립니다. 그거야. – Kiran