Bash 如何使用cURL遍历shell中远程文件的行?
我了解如何遍历本地文件中的行。但是远程文件呢Bash 如何使用cURL遍历shell中远程文件的行?,bash,shell,curl,Bash,Shell,Curl,我了解如何遍历本地文件中的行。但是远程文件呢 while read NAME do echo "$NAME" done < curl -sL 'http://mylistofnames.com/list.html 读取名称时 做 回显“$NAME” 完成
while read NAME
do
echo "$NAME"
done < curl -sL 'http://mylistofnames.com/list.html
读取名称时
做
回显“$NAME”
完成
如果这是本地的,我会用done
替换最后一行。我卡在遥控器上。管道输出:
curl -sL 'http://mylistofnames.com/list.html' | while read NAME
do echo "$NAME"
done
使用过程替代:
while read NAME
do echo "$NAME"
done < <(curl -sL 'http://mylistofnames.com/list.html')
读取名称时
不回显“$NAME”
完成<将curl命令放在:
读取名称时
做
回显“$NAME”
你能帮我检查一下你的语法吗?管道确实起作用了,但我想在循环外部访问循环内设置的变量。在我尝试的变体中,不断出现意外的令牌错误。最新尝试:done<$(curl-sLhttp://domain.com/list.html)
@Ryan在流程替换之前,您还有一个额外的$
<代码>$(…)
是命令替换。我知道,我在Doh中遇到了意外的令牌错误!我有#/bin/sh
位于顶部,而不是#/bin/bash
。一切都好。再次感谢。管道工作正常。谢谢虽然我现在希望让流程替换工作起来,这样我就可以访问循环外部的变量。添加了流程替换版本Interesting。这就是正确的语法。但是我在意外标记附近不断发现语法错误
您正在运行哪个版本的bash?它可能没有进程替换。Doh!我有#/bin/sh
位于顶部,而不是#/bin/bash
。一切都好。再次感谢。
while read NAME
do
echo "$NAME"
done < <(curl -sL 'http://mylistofnames.com/list.html')