질문 아래 코드.쉘 스크립트에서 조건에 md5 해시 값을 비교하는 방법은 무엇입니까?
#!/bin/sh
check() {
dir="$1"
chsum1=`find ~/folder -type f -exec cat {} \; | md5`
chsum2=$chsum1
for ((; 0x$chsum1 == 0x$chsum2; ))
do
echo "hello"
sleep 10
chsum2=`find ~/folder -type f -exec cat {} \; | md5`
done
echo "hello"
#eval $2
}
check $*
목표는 다음과 같습니다. 코드 작성. 그것은 무엇입니까? md5를 폴더에 적용한 다음 md5 값을 비교합니다. 그것은 값이 달라질 때까지 루프를 유지합니다 (즉, 폴더상의 어떤 일이 일어 났음을 의미합니다). 따라서 md5가 해시를 계산할 때 10 초 후에 코드가 다르게되어야합니다.
두 가지 질문.
- 거기에 댓글이 있습니다. 주석 처리를 제거하고 for에 대해 주석을 달면 코드가 작동을 멈춘다는 것을 알 수 있습니다. 왜? 내가 그것을 작동 시키려고 노력에 대한 다른 조합을 시도. 따옴표로 묶고, -eq, =, == 등을 사용했습니다. 아무 것도 작동하지 않았습니다. 나는 어떻게 그것을 전체와 함께 작동시킬 수 있을까?
- 그 다음 실행되는 경우는, 지금 코드가 내가 출력으로 무엇을 얻을 방법은 다음과 같습니다
((: d41d8cd98f00b204e9800998ecf8427e의 == 97329acaae00bdf66e30ac53b49e1036 : 값이 기본에 너무 큰 (오류 토큰 "입니다 97329acaae00bdf66e30ac53b49e1036 ")
Thus, how can I fix this is the second question and why this is happening.
감사합니다!
pastebin의 링크가 끊어졌습니다. 코드를 다른 사이트에 게시하는 대신 질문에 붙여 넣으십시오. – mttrb
글을 올리려고했지만 여기에 질문의 서식을 지정하는 데 어려움이 있습니다. 나는 그것을 사과한다. –
pastebin에서 코드를 복사 했으므로 수정 사항을 수락해야합니다. 기본적으로, 코드를 붙여넣고 그것을 선택하고 텍스트 상자 위의'{}'버튼을 눌러 코드로 형식을 지정하십시오. – mttrb