我是bash脚本新手。现在,问题是自我解释。我想在bash中使用循环打印值2 ^ 0,2 ^ 1,2 ^ 2,2 ^ 2,3 ^ 4,2 ^ 5。
我试过..
for i in {0...5}; do echo 2^$i; done
结果:
2^{0...5}
请提出解决方案
答案 0 :(得分:6)
这是正确的形式:
for i in {0..5}; do echo $((2**i)); done
其中{ .. }
是范围运算符,$(( ))
是算术评估运算符。
请注意,Bash中的 power 运算符是**
而不是^
。
答案 1 :(得分:1)
2^$i;
无效,因为bash不支持该运算符。
您可以尝试添加此
pow()
{
echo $(( ${1:?} ** ${2:?} ))
}
代码(使用pow [base] [exponent]
(当然没有括号))。
(请记住我没有测试过,所以这可能无法按预期工作)
答案 2 :(得分:0)
你也可以尝试这个代码,
$ for i in {0..5}; do awk -v var=$i 'BEGIN{print 2^var}'; done
1
2
4
8
16
32