0
時,該工作巴什 - 變量指數提高功率
answer=$(echo "2^3" | bc)
$ 8
然而,這並不。以下是完整的腳本:
#!/bin/bash
myvar=$(echo "4-1" | bc)
answer=$(echo "2^$myvar" | bc)
echo $answer
當我跑這跟「設置-x」,這是輸出
./test.sh: line 3: syntax error near unexpected token '|'
./test.sh: line 3: 'myvar=(echo "4-1" | bc)
++ echo '2^'
++ bc
(standard_in) 2: syntax error
+ answer=
+ echo
我想堅持BC,但無法弄清楚如何傳遞一個var作爲指數。
缺少他們都爲我工作。 – Barmar
爲什麼你需要使用'bc'? 'bash'有一個內置的指數運算符:'answer = $((2 ** myvar))' – Barmar
請顯示運行myvar = 3的日誌。 answer = $(echo「2^$ myvar」| bc); echo「$ answer」'並得到8以外的結果。也就是說 - 這裏的主張是很難相信的,沒有證明你測試了你的確切的重現器(而不是從你的真實代碼中得到它)檢查問題仍然存在),我拒絕相信它。 –