庆典通过IP地址到一个URL在我的剧本
问题描述:
http://www.geoiptool.com/en/?IP=庆典通过IP地址到一个URL在我的剧本
我需要一些帮助来写一个bash脚本,让我到任何IP传递给此URL。上面的网站是我想要我的脚本调用的URL。有人能让我开始吗?谢谢!
我想用这样的脚本:echo IP_ADDRESS | geoiptool
当我回应一个IP并将其传递给我的脚本时,我在下面得到这个错误。是因为 pipe命令没有安装?
-bash-3.2 $ echo 173.192.108.135 | geo -bash:echo:写入错误:损坏的管道
答
我建议使用命令行参数,而不是从标准输入读取。您可以使用$ 1指第一个参数,$ 2为第二等
#!/bin/bash
curl -s http://www.geoiptool.com/en/?IP=$1
然后你只是火了:
geoiptool <IP>
答
您可以使用read
命令从stdin
读取并将地址存储在变量中。然后使用wget
发出HTTP请求:
read ip
wget http://www.geoiptool.com/en/?IP=$ip
答
好的。
可以使用read
命令从stdin
读取一行,并将其分配给一个变量:
read variable
echo "You said: $variable"
而且curl
是与HTTP网址交互的通常安装命令行工具:
curl http://www.google.com/
(您也可以根据您的要求使用wget
或lynx
或其他工具)。
所以有一个非常简单的脚本可能类似于:
URL="http://www.geoiptool.com/en/?IP="
read ipaddr
curl --silent "$URL$ipaddr"
+0
感谢您的指导。非常感激。 – Jim 2012-04-10 13:27:22
谢谢。这样做有什么好处吗? vs做'回声 | geoiptool' –
Jim
2012-04-10 13:36:29
无论哪种方式,它都能正常工作,但这是更传统的“unixish”方式。管道通常用于过滤器 - 像sed或grep这样的程序需要大量的输入,对它做些什么,然后将其吐出。命令行参数通常用于指示选项和配置。 – 2012-04-10 13:39:18
明白了。谢谢。这正是我需要知道的。 – Jim 2012-04-10 13:47:03