1

我正在尝试grep在运行的 while 循环中使用curl

    i=1
    while read -a row
    do
      test $i -eq 1 && ((i=i+1)) && continue
      STRING=${row[2]}
      CURL=`curl ${row[0]}${row[1]} | ${grep '$STRING'}`
      echo $CURL
    done < <(echo "SELECT check_address, check_page, check_string FROM checks" | mysql monitor)

问题出在"${grep '$STRING'}“。由于grep需要grep 'text'我尝试了不同的方式,例如grep '$var'${grep $var}无法使其工作。

SQL 输出:

    ${row[0]} = http://www.codeoasis.com/
    ${row[1]} = index.php
    ${row[2]} = Copyright
4

1 回答 1

2

您不需要捕获curlor的输出grep

i=1
while read -a row
do
  test $i -eq 1 && ((i=i+1)) && continue
  STRING=${row[2]}
  curl ${row[0]}${row[1]} | grep "$STRING"
done < <(echo "SELECT check_address, check_page, check_string FROM checks" | mysql monitor)

请注意在 周围使用双引号$STRING,而不是单引号。

于 2012-09-10T12:37:34.477 回答