首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >新编写脚本,编写wget脚本

新编写脚本,编写wget脚本
EN

Stack Overflow用户
提问于 2014-07-16 17:24:34
回答 2查看 134关注 0票数 0

这是我第一次尝试编写代码,现在我需要一些帮助。

我得到一个语法错误,但不知道它在哪里。请您看一下我的代码,告诉我修复语法需要什么,以及我需要改进这个脚本吗?

代码语言:javascript
复制
#!/bin/bash

echo -e "Please Input Website To Get URLS and IPs" 

while read line do wget $line -O $line.txt -o /dev/null ls -l $line.txt

grep "href=" $line.txt | cat -d"/" -f3 |grep $line |sort -u > $line-srv.txt

for hostname in $(cat $line-srv.txt);do host $hostname |grep "has adress"

done
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-16 17:30:15

你错过了第二个“完成”。您只终止了一个while循环。

一致的缩进就会发现这一点。也就是说,如果您缩进了循环中的所有内容,那么更明显的是缺少了什么东西。例如。

代码语言:javascript
复制
echo -e "Please Input Website To Get URLS and IPs" 

while read line
do
     wget $line -O $line.txt -o /dev/null
     ls -l $line.txt

     grep "href=" $line.txt | cat -d"/" -f3 |grep $line |sort -u > $line-srv.txt

     for hostname in $(cat $line-srv.txt);do
        host $hostname |grep "has adress"
     done
票数 1
EN

Stack Overflow用户

发布于 2014-07-16 17:48:57

您可能会发现这更简单:

代码语言:javascript
复制
#!/bin/bash
while read -p "Please Input Website To Get URLS and IP (CTRL-D to exit): " TARGET || { echo >&2; false; }; do
    wget -O - -o "/dev/null" "$TARGET" | grep -Po '(?<=://)[^/]+' | grep "$TARGET"
done | sort -u | xargs -r host | grep 'has address'

试着运行它,并对您期望的函数与它的比较给出一个注释。

或另一种形式:

代码语言:javascript
复制
#!/bin/bash
while read -p "Please Input Website To Get URLS and IP (CTRL-D to exit): " TARGET || { echo >&2; false; }; do
    wget -O - -o "/dev/null" "$TARGET" | grep -Po '(?<=://)[^/]+' | grep "$TARGET" | sort -u | xargs -r host | grep 'has address'
done
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24786995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档