如何cat远程文件来读取Bash中的参数?

问题描述 投票:0回答:4

如何

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:没有这样的文件或目录

linux bash fedora
4个回答
24
投票

您可以使用

curl

curl http://localhost/1/downloads.txt

21
投票

不要使用从文件系统读取文件的

cat
,而是使用
wget -O- -q
,它通过 HTTP 读取文档并将其写入标准输出:

for i in $(wget -O- -q http://localhost/1/downloads.txt)

-O...
选项表示“写入指定文件”,其中
-
是标准输出;
-q
选项表示“安静”,并禁用大量日志记录,否则会导致标准错误。)


7
投票

为什么要使用 URL 从本地计算机复制?你不能直接从文件中cat吗?

如果您是从远程计算机而不是本地主机执行此操作,那么据我所知,您无法将 URL 传递给 cat。

我会尝试这样的事情:

scp username@hostname:/filepath/downloads.txt /dev/stdout

正如其他人提到的,您也可以使用

wget 而不是 scp


0
投票
一个简单的解决方案:

内容=$(curl -L

https://example.com) 回显$内容

如果你不想看到curl日志:

内容=$(wget

https://example.com-q -O -) 回显$内容

© www.soinside.com 2019 - 2024. All rights reserved.