if [[ ${fin[2]} -eq OK && ${fin[7]} -eq NA ]]
then
echo "<tr id="green">" >> /tmp/mailt.txt
elif [[ ${fin[2]} -eq OK && ${fin[7]} -lt 0 ]]
then
echo "<tr id="yellow">" >> /tmp/mailt.txt
elif [[ ${fin[2]} -ne OK && ${fin[7]} -eq NA && $currDate2 -gt $expectedFinishTimes ]]
then
echo "<tr id="red">" >> /tmp/mailt.txt
elif [[ ${fin[2]} -ne OK && ${fin[7]} -eq NA && $currDate2 -lt $expectedFinishTimes ]]
then
echo "<tr id="white">" >> /tmp/mailt.txt
fi
위의 경우 ${fin[2]}
OK와 같지 않더라도 첫 번째 조건만 true로 평가됩니다. 뭐가 문제 야?
답변1
운영자 님 -eq
그리고 -ne
그렇죠산수비교에 사용되는 연산자수치데이터.
당신이 원하는 것은 다음 ==
과 같습니다 !=
.
if [[ "${fin[2]}" == 'OK' ]] &&
[[ "${fin[7]}" == 'NA' ]]; then
그리고
elif [[ "${fin[2]}" != 'OK' ]] &&
[[ "${fin[7]}" == 'NA' ]] &&
(( currDate2 < expectedFinishTimes )); then
(예를 들어).
또한 인용문과 다음 사항을 참고하세요 echo
.
echo "<tr id="green">"
다음과 같이 쓰는 것이 더 낫다
echo '<tr id="green">'
첫 번째는 생산할 것입니다
<tr id=green>
두 번째 제품이 생산되는 동안
<tr id="green">