2015-10-20 90 views
0

我在bash中使用下面的腳本來比較當前時間並更改$VAL的值。但是這個腳本給出了需要比較bash shell中的當前時間linux

./valscr.sh: line 14: syntax error: unexpected end of file

在這個腳本中沒有第14行。

export NOW= `date +"%k%M"` 
export VAL="O" 
if [ $NOW -lt 1200]; then 
export VAL="M" 
fi 
if [ $NOW -ge 1200 -a $NOW -lt 1800 ]; then 
export VAL="U" 
fi 
if [ $NOW -ge 1800 ]; then 
export VAL="E" 
fi 
echo $NOW 
echo $VAL 
+2

注那'export NOW = \'date +「%k%M」'''實際上應該是'export NOW = \'date +「%k%M」''(在'='之後沒有空格)。 – ruakh

+4

除了@ ruakh的說明:第三行中應該有'1200'和']'之間的空格。 – ankon

+1

該腳本適用於bash。更加詳細一些。 – yacc

回答

0

當我複製你的腳本我得到的錯誤是由於您的變量賦值空間和「測試」條件(無空格前「]」需要一個「=」和空間之後)。當我解決這些項目時,那麼腳本就起作用了。但是,您的錯誤表明您的文件中有'隱藏'字符,即'\ r'(返回字符)。

要檢查此問題,請嘗試'cat -E your_file'。

查看任何'^ M或其他奇怪的字符?請注意,您應該看到「$」(結束線條標記。)刪除「^ M的或其他‘壞控制代碼’,你的腳本應該工作...

:)
戴爾

相關問題