我試圖做一個if語句,其中如果小時13和23之間將設置小時回12.現在下面是我的shell腳本代碼的片段:如果with語句和shell腳本
#!/bin/bash
HOUR=$1
if [ $HOUR > 13 ] && [ $HOUR < 23 ];
then
$HOUR=12
fi
現在我運行此腳本時出現錯誤。我如何調整這個腳本以獲得上面指定的所需條件?
我試圖做一個if語句,其中如果小時13和23之間將設置小時回12.現在下面是我的shell腳本代碼的片段:如果with語句和shell腳本
#!/bin/bash
HOUR=$1
if [ $HOUR > 13 ] && [ $HOUR < 23 ];
then
$HOUR=12
fi
現在我運行此腳本時出現錯誤。我如何調整這個腳本以獲得上面指定的所需條件?
if [ $HOUR -gt 13 -a $HOUR -lt 23 ]
then
HOUR=12
fi
$HOURS=12
(刪除$)'-a'被認爲是過時的。改用'[「$ HOUR」-gt 13] && [「$ HOUR」-lt 23]'。 – chepner
您需要以算術方式而不是文本方式評估該表達式。嘗試是這樣的:
#!/bin/bash
HOUR=$1
if (($HOUR > 13)) && (($HOUR < 23));
then
HOUR=12
fi
你可以在裏面使用'&&':'(($ HOUR> 13 && $ HOUR <23))'。 – chepner
你不需要'$':'((HOUR> 13 && HOUR <23))';) –
較短的版本:
#!/bin/bash
HOUR=$1
[[ $HOUR > 13 && $HOUR < 23 ]] && HOUR=12
你能否通過[shellcheck]運行它(http://shellcheck.net)並解決它首先指出的問題? –
你有什麼錯誤? – user3553031
''''和'<'是shell中的重定向操作符。 – Barmar