如何在MySQL中输入my bash命令的变量值?

时间:2014-05-25 17:00:06

标签: mysql bash httrack

以下代码从网站中提取所有域名,并将其设置为$domain数据流中的httrack值。

domain=$(httrack --skeleton http://www.ilovefreestuff.com -V "cat \$0" | grep -iEo '[[:alnum:]-]+\.(com|net|org)')

$ domain的值看起来像这样......

   googlesyndication.com facebook.com facebook.com ilovefreestuff.com   ilovefreestuff.com facebook.com facebook.com ilovefreestuff.com   ilovefreestuff.com peadig.com facebook.net ilovefreestuff.com w3.org   ilovefreestuff.com yoast.com ilovefreestuff.com

我有我的数据库设置,这个命令工作正常。

mysql -pPASSWORD -e "INSERT INTO domains.domains (domains) VALUES ($domain)”

我正试图在一个组合命令行中从$domain数据流中动态地将变量httrack中的每个域插入到我的MySQL数据库中。因此,在我的疯狂思想中它应该看起来类似于下面...不幸的是这不起作用。我没有输出,只是另一个bash提示。

domain=$(httrack --skeleton http://www.ilovefreestuff.com -V "cat \$0" | grep -iEo '[[:alnum:]-]+\.(com|net|org)') | mysql -pPASSWORD -e "INSERT INTO domains.domains (domains) VALUES ($domain)"

我不确定如何将$domain变量切换到单个域中,这样我就可以为每个MySQL数据单元输入一个域,而且我不确定如何将结果传递给MySQL给出该命令是一个数据流。也许我需要一个for循环和一个cut命令?

1 个答案:

答案 0 :(得分:1)

  

也许我需要一个for循环和一个cut命令?

你说的。它不会是单行,但这应该有效:

domain=$(httrack --skeleton http://www.ilovefreestuff.com -V "cat \$0" | grep -iEo '[[:alnum:]-]+\.(com|net|org)')

for single_domain in $domain
do
  mysql -pPASSWORD -e "INSERT INTO domains.domains (domains) VALUES ($single_domain)"
done