如何捕获远程文件以读取BASH中的参数?

12 linux bash fedora

我如何捕获远程文件?它仅适用于本地文件.

#!/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
Run Code Online (Sandbox Code Playgroud)

cat:http://localhost/1/downloads.txt:没有这样的文件或目录

Rob*_*ers 19

你可以使用curl:

curl http://localhost/1/downloads.txt
Run Code Online (Sandbox Code Playgroud)


rua*_*akh 18

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

for i in $(wget -O- -q http://localhost/1/downloads.txt)
Run Code Online (Sandbox Code Playgroud)

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


hal*_*alm 7

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

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

我会尝试这样的事情:

scp username@hostname:/filepath/downloads.txt /dev/stdout
Run Code Online (Sandbox Code Playgroud)

正如其他人提到的那样你也可以使用wget而不是scp.