2015-02-23 47 views
1

嗨,我試圖讓這個簡單,她會腳本的工作,但我一直遇到的錯誤:簡單的shell腳本添加2個變量

bday.sh [9]:2015年至1987年:未找到

bday.sh [9]:yearb =:找不到

這裏是我到目前爲止的代碼

echo "what year is it?" 
read "year" 
echo "what year were you born?" 
read "byear" 
"yearb"="$(("$year"-"$byear"))" 
echo "$yearb" 

提前感謝你們!

回答

4

用於引用的榮譽,但它確實只適用於參數擴展,如echo "$yearb"

未膨脹的變量名(沒有在先$)不需要引用,有時不能擁有:

yearb=$((year - byear)) 

另外,語法$(((算術擴展)是它自己的句法元素,以便沒有空間是允許的。使用嵌套(..)(subshel​​l)替代$(..)(命令擴展)。

這裏有一個完整的例子:

$ cat script 
echo "what year is it?" 
read "year" 
echo "what year were you born?" 
read "byear" 
yearb=$(($year - $byear)) 
echo "$yearb" 

$ bash script 
what year is it? 
2015 
what year were you born? 
1970 
45 
+0

好吧我改變它看起來與你的相同,但我仍然得到錯誤 bday.sh [9]:年:沒有找到,我沒有真正學到很多關於引號,所以我剛剛包括他們在我的所有測試中,這是我第一次遇到問題...你能夠更詳細地解釋或可能提供一些閱讀材料,我感謝你的幫助! – JONAS402 2015-02-23 22:18:41

+0

@ JONAS402我用一個完整的例子對它進行了更新。看看它是否仍然是一樣的。 – 2015-02-23 22:21:27

+0

這工作完美,所以如果我沒有在括號內包括空格但保留引號將仍然失敗?非常感謝你的幫助 :) – JONAS402 2015-02-23 22:25:56

2

加也可以像

回聲 「$ A + $ B」 進行| bc