2017-04-06 14 views
0

wgetをfilenameの単語のリストで実行し、テキストをgrepしようとしていますが、右のバックティックがどこにあるのかが分かりません。あまりにも多くの引数 " また、それはあなたがカールを使用する方が良いと思いますか?wgetとgrep generate - 引数が多すぎます

#!/usr/bin/bash 

filename=$1 

ip=http://172.29.46.28/ 

while read -r line 

do 

name="$line" 

if [ `wget -q -O - "$ip""$name" | grep "text"` ] 
then 
    echo "found" 
fi 
done < "$filename" 
+0

はあなたの変数の割り当てを引用: 'IP = "http://172.29.46.28/"'そのIPが文字列リテラルであり、そのようなものとして扱われるべきであるため。 – JNevill

答えて

0

if文を変更して、コマンドの出力を含めないようにしました(潜在的に長すぎる可能性があります)。

ちょうど行います

wget -q -O - "${ip}${name}" | grep -qs "text" 

if [ $? -eq 0 ] 
then 
    echo "found" 
fi 
+0

また、grep -qs(サイレントにする)を使うと、1行がマッチするとすぐに終了するので、より高速です。それ以外の場合は、すべてのstdinを処理する必要があります。 – kontiki

関連する問題