저는 쉘 스크립트를 사용하여 초과 근무 시간을 계산하는 프로젝트를 진행 중입니다. 두 개의 입력이 있고 내 숫자가 800 = 8시간을 초과하는지 알고 싶습니다. 더 큰 경우 결과를 내 텍스트 파일에 인쇄해야 합니다. 내 차이점을 인쇄해야 합니다.
if [ $var1 -gt 800 ]; then
`expr $var1-800`
echo Overtime: "" >> $path
그러면 계산 결과를 인쇄하는 방법을 모르기 때문에 길을 잃습니다.
답변1
최신 bash로 이것을 시도해 보십시오(백틱이나 를 사용하지 마십시오 expr
):
if ((var1 > 800)); then
overtime=$((var1 - 800)) # variable assignation with the arithmetic
echo "Overtime: $overtime"
fi
또는 간단하게:
if ((var1 > 800)); then
overtime="Overtime: $((var1 - 800))" # concatenation of string + arithmetic
fi
확인하다bash 산술
답변2
if (( var1 > 800 )); then
printf 'Overtime: %d\n' "$(( var1 - 800 ))" >>"$path"
fi
expr
백틱은 더 이상 사용되지 않으며 여기서는 명령 대체도 필요하지 않습니다.