2011-09-02 86 views
0

我這個編碼shell腳本乘法錯誤的shell腳本

#!/bin/bash 

VAR1=`awk -F"#" '/futuro/ { print $1 }' config.conf` 
HOST="www.odds.com/matches/soccer/" 
ONEDAY=86400 
TODAYN=`date +%s` 
VAR2= expr $VAR1 \\* $ONEDAY 
TODAY=`date -d @$(($TODAYN + $VAR2)) +%Y%m%d` 
TOMORROW=`date -d @$(($TODAYN + $ONEDAY)) +%Y%m%d` 
FULLTODAY=$HOST$TODAY"/" 
FULLTOMORROW=$HOST$TOMORROW"/" 

...一些其他的東西

但是當我試着執行它時,我得到這個錯誤

里加8:1314967172 +:errore di sintassi:atteso un operando(il token di erroreè「+」)

這裏是錯誤嗎?

+1

7個問題。沒有被接受。非常好 –

+1

意大利語錯誤意味着:'語法錯誤:期望的操作數(在標記「+」處)' – mouviciel

回答

1

變化

VAR2= expr $VAR1 \\* $ONEDAY 

VAR2=$((VAR1 * ONEDAY)) 

但是,你應該能夠代替這樣說:

HOST="www.oddsportal.com/matches/soccer/" 
DAYS=$(awk -F"#" '/futuro/ { print $1 }' config.conf) 
TODAY=$(date -d "$DAYS days" +%Y%m%d) 
FULLTODAY="${HOST}${TODAY}/" 
FULLTOMORROW="${HOST}$(date -d "$TODAY + 1 day" +%Y%m%d)/" 
+0

感謝您使用更乾淨的代碼,但它不會完全執行相同的任務。 FULLTOMORROw必須是FULLTODAY後的一天,今天可以是將來或過去的任何一天。 – emanuele

+0

我認爲這樣更好... – emanuele

+0

HOST =「www.oddsportal.com/matches/soccer/」 DAYS = $(awk -F「#」'/ futuro/{print $ 1}'config.conf) VAR1 = $(($ DAYS + 1)) FULLTODAY = 「$ {HOST} $(日期-d 」$ DAYS天「 +%Y%米%d)/」 FULLTOMORROW =「$ {HOST } $(date -d「$ VAR1 day」+%Y%m%d)/「 – emanuele

1

VAR2未正確初始化:其值爲""。也許你忘了反應。

但是你應該用$(...)來代替反推。

此外,expr不是在這裏做乘法的最好方法。爲什麼不使用$((...)),你已經使用了新增功能?

+0

不起作用。可能是VAR1不被視爲一個數字? – emanuele

+0

我可以不說'VAR1':我不知道'config.conf'裏面有什麼。 – mouviciel