2016-08-28 24 views
0

私は以下のbashスクリプトを用意しています。これは広範囲のIPアドレスを対象としています。Bash:コマンドライン引数の変数を含む

#!/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 

ただし、現時点では変数aは含まれていません。 bashスクリプトの作成時に、コマンドライン引数に変数を適切に含めるにはどうすればよいですか?このように見て

電流出力:

/root/burningWood/scripts/StressTest/tester.sh: line 5: a: command not found 
254 
Spider mode enabled. Check if remote file exists. 
--2016-08-28 13:23:10-- http://139.162.246./ 
Resolving 139.162.246. (139.162.246.)... failed: Name or service not known. 
wget: unable to resolve host address ‘139.162.246.’ 
Found no broken links. 

答えて

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へのコールの一部を新しい行に移動しました。より明確にe。

割り当ての周りに空白がないので、変数aを使用する場合は、a=$((a + 1))のように割り当てます。

+1

ありがとうございます!あなたは私の仕事ではないと信じて奇妙に感じるので、https://github.com/Shakyamuni177te/StressTestへのプルリクエストとしてこれを提出することを歓迎します。あなたにもかかわらず:)。 –

+1

リポジトリ内の現在のコードはポート番号を使用していませんが、私はプルリクエストを提出して嬉しいです!私の答えの内容は帰属と自由に使用できるので、自分で変更したり、ここにリンクしたり、あなたの質問のコードとレポがいつ一致するかを教えてください。 –

+0

代わりにhttps://github.com/Shakyamuni177te/Web-Spiderを試してください:)。 –

0

bashの数学は、特別な構文を必要とする - ここではそれを私はあなたのコードの変更のカップル作った

a=$((a + 1)) 
関連する問題