bash将ip地址传递到脚本中的URL
我需要一些帮助来编写一个bash脚本,它允许我将任何给定的IP传递到这个URL。上面的站点是我想调用脚本的URL。有人能帮我开始吗?谢谢 我想这样使用我的脚本:echo IP|u ADDRESS | geoiptool 当我回显一个IP并将其传输到我的脚本时,我在下面得到了这个错误。是因为 是否未安装管道命令 -bash-3.2$echo 173.192.108.135 | geobash将ip地址传递到脚本中的URL,bash,Bash,我需要一些帮助来编写一个bash脚本,它允许我将任何给定的IP传递到这个URL。上面的站点是我想调用脚本的URL。有人能帮我开始吗?谢谢 我想这样使用我的脚本:echo IP|u ADDRESS | geoiptool 当我回显一个IP并将其传输到我的脚本时,我在下面得到了这个错误。是因为 是否未安装管道命令 -bash-3.2$echo 173.192.108.135 | geo -bash:echo:write error:break pipe您可以使用read命令从stdin读取并将地址存
-bash:echo:write error:break pipe您可以使用
read
命令从stdin
读取并将地址存储在变量中。然后使用wget
发出HTTP请求:
read ip
wget http://www.geoiptool.com/en/?IP=$ip
好的
您可以使用
read
命令从stdin
读取一行,并将其分配给变量:
read variable
echo "You said: $variable"
而curl
是一个常用的命令行工具,用于与HTTP URL交互:
curl http://www.google.com/
(您也可以使用wget
或lynx
或其他工具,具体取决于您的需求)
因此,一个非常简单的脚本可能如下所示:
URL="http://www.geoiptool.com/en/?IP="
read ipaddr
curl --silent "$URL$ipaddr"
我建议使用命令行参数,而不是从stdin读取。可以使用$1引用第一个参数,使用$2引用第二个参数,以此类推
#!/bin/bash
curl -s http://www.geoiptool.com/en/?IP=$1
然后你只需通过以下方式启动它:
geoiptool <IP>
geoiptool
谢谢您的指导。非常感谢,谢谢。这样做有好处吗?与使用“echo | geoiptool”相比,这两种方法都很好,但这是更传统的“单向”方法。管道通常用于过滤器——像sed或grep这样的程序,它们接收大量的输入,对其执行一些操作,然后将其吐出。命令行参数通常用于指示选项和配置。明白了。谢谢这正是我需要知道的。