使用bash将2的回声值提升到{0 .... 5}的幂

时间:2014-07-24 12:34:44

标签: bash

我是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}

请提出解决方案

3 个答案:

答案 0 :(得分:6)

这是正确的形式:

for i in {0..5}; do echo $((2**i)); done

其中{ .. }范围运算符,$(( ))算术评估运算符。

请注意,Bash中的 power 运算符是**而不是^

答案 1 :(得分:1)

编辑:Roberto Reale's answer为此目的要好得多,因为它更短更简单。

不幸的是,

2^$i;无效,因为bash不支持该运算符。

您可以尝试添加此

pow()
{
    echo $(( ${1:?} ** ${2:?} ))
}

代码(使用pow [base] [exponent](当然没有括号))。

(请记住我没有测试过,所以这可能无法按预期工作)

Source

答案 2 :(得分:0)

你也可以尝试这个代码,

$ for i in {0..5}; do awk -v var=$i 'BEGIN{print 2^var}'; done
1
2
4
8
16
32