ftp 연결이 실패하거나 egrep을 사용하여 성공한 경우 나를 반환하는 bash 스크립트를 실행하고 있습니다. 문제는 egrep로 단어를 가져 오려고 할 때 0을 반환하지만 명령을 수동으로 실행하면 2.egrep은 bash 스크립트에서 0을 리턴하지만 올바른 값을 리턴하는 명령을 수동으로 실행 중입니다. 유닉스 bash
를 반환하면이 내 코드입니다 :
ftp_results_id은 egrep을 -c 명령에 0을 반환,하지만 난 그것을 실행 후 수동으로 실행하고 파일 "FTP_RESULTS"를 작성하고 노력하고 있어요#Create the FTP Connection.
for ip_address in ${IP_ADDRESS[@]}; do
ftp ${ip_address} <<ftp_commands > ${FTP_RESULTS}
user "${USER_ID}" "${USER_PASSWORD}"
pwd
bye
ftp_commands
ftp_result_id=`egrep -c "Login failed|Connection refused|Not connected|Connection timed out" ${FTP_RESULTS}`
if [ ${ftp_result_id} -gt 0 ]; then
echo "$(date +%m/%d/%y_%H:%M:%S) - ${ip_address} - Not connected" >> ${CONNECTION_RESULTS_FILE}
else
echo "$(date +%m/%d/%y_%H:%M:%S) - ${ip_address} - Connected" >> ${CONNECTION_RESULTS_FILE}
fi
done
, 그것은 "연결되지 않았습니다"와 일치하는 2 건을 찾았다 고 가정합니다.
어떤 제안이 있습니까?
grep -Eq'를 사용하고 종료 코드 – anubhava
@anubhava grep -Eq가 아무 것도 반환하지 않습니다 ... –
모든 명령과 마찬가지로 유용한 종료 코드가 반환됩니다. grep -Eq "your terms"yourfile; then echo "그것은 일치했다"; fi' –