我有以下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
答案 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 ))
。