我有以下代码,在其下方提供相应的错误。
#!/bin/sh
H=$(date +%H)
# If during sleeping hours (23 [or 11 pm] to 8 am), *don't* turn on the lights
night_time=8
wake_up_time=23
if (( $H -le $night_time -o $H -le $wake_up_time )); then
# Bedtime
echo "You need to go to bed"
else
echo "You're probably awake"
fi
错误:
/file_location/file.sh: 7: /file_location/file.sh 11: not found
所以看来我有条件的问题。
可能导致此错误的原因是什么?我在((
,))
和test之间添加了空格,我用算术括号(
代替括号[
或test
命令,因为我是处理数字。
我还能错过什么?
答案 0 :(得分:1)
您可以使用测试或算术评估,但不要混淆它们。
使用测试:
if [ "$H" -le "$night_time" -o "$H" -ge "$wake_up_time" ];
使用算术评估:
if (( "$H" <= "$night_time" || "$H" >= "$wake_up_time" ));
你使用&#34;少于或等于&#34;两次,第二次应该是&#34;更大或等于&#34;。