如何
cat
远程文件?目前,它仅适用于本地文件。
#!/bin/bash
regex='url=(.*)'
# for i in $(cat /var/tmp/localfileworks.txt);
for i in $(cat http://localhost/1/downloads.txt);
do
echo $i;
# if [[ $i =~ $regex ]]; then
#echo ${BASH_REMATCH[1]}
#fi
done
cat:http://localhost/1/downloads.txt:没有这样的文件或目录
您可以使用
curl
:
curl http://localhost/1/downloads.txt
不要使用从文件系统读取文件的
cat
,而是使用 wget -O- -q
,它通过 HTTP 读取文档并将其写入标准输出:
for i in $(wget -O- -q http://localhost/1/downloads.txt)
(
-O...
选项表示“写入指定文件”,其中-
是标准输出;-q
选项表示“安静”,并禁用大量日志记录,否则会导致标准错误。)
为什么要使用 URL 从本地计算机复制?你不能直接从文件中cat吗?
如果您是从远程计算机而不是本地主机执行此操作,那么据我所知,您无法将 URL 传递给 cat。
我会尝试这样的事情:
scp username@hostname:/filepath/downloads.txt /dev/stdout
正如其他人提到的,您也可以使用
wget 而不是 scp。
内容=$(curl -L
https://example.com) 回显$内容
如果你不想看到curl日志:内容=$(wget
https://example.com-q -O -) 回显$内容