Bash:在命令行参数中包含变量

时间:2016-08-28 13:21:30

标签: bash loops variables

我有以下bash脚本,它应该包含一系列IP地址。

public double average(int y[], int i) {
    double result;
    result = (double)y[i] / (double)y.length;
    if (i == 0)
        return result;
    else
        return result + average(y, i-1);
}

但是,目前它并未包含变量#!/bin/bash a = 0 for i in `seq 1 255`; do a = a + 1 echo $i wget -r --spider -D --header="Accept: text/html" --user-agent="Order Of The Mouse: Stress Tester" 139.162.246.$a:80 done 。在编写bash脚本时,如何在命令行参数中正确包含变量?

当前输出如下:

a

2 个答案:

答案 0 :(得分:0)

bash数学需要特殊的语法 - 这是一种方法

a=$((a + 1))

答案 1 :(得分:0)

我对您的代码进行了一些更改:

#!/bin/bash

for i in {1..255} # <-- use brace expansion instead of seq, no semicolon needed
do
    # a = a + 1 <-- variable $a is redundant, just use $i
    wget -r --spider -D --header="Accept: text/html"  \
        --user-agent="Order Of The Mouse: Stress Tester" "139.162.246.$i:80"
done

我将部分呼叫移至wget到新线路,以便您更清楚地看到更改。

请注意,作业周围没有空格,因此如果您想使用变量a,则会将其指定为a=$(( a + 1 ))