欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

macos 通过 curl 和 wget 获取结果 保存为一个字符串示例 通义 chatgpt 有大用

在 macOS 中,如果你想通过 curlwget 获取网络数据并将其保存为一个字符串变量,你可以使用 shell 的特性来实现。这里是如何做到这一点的示例:

-s, --silent   静默模式
       Silent or quiet mode. Don't show progress meter or error messages.  Makes Curl mute.

使用 curl

Bash
深色版本
1    result=$(curl -s 'http://example.com')
2    echo "$result"

在这个例子中,curl -s 'http://example.com' 命令会被执行,并且 -s 选项会告诉 curl 在执行时不输出任何进度信息,只返回数据。$(command) 是 bash 中的命令替换语法,它会执行括号中的命令并将输出结果存储为字符串。然后这个字符串被赋值给变量 result

使用 wget

对于 wget,你可能需要先将输出重定向到一个临时文件,然后再读取这个文件到变量中,因为 wget 不像 curl 那样直接支持命令替换语法。但是,从 macOS Catalina (10.15) 开始,wget 已经更新到了一个更现代的版本,该版本支持管道操作。因此,现在也可以直接使用管道来完成类似的操作:

Bash
深色版本
1    result=$(wget -qO- 'http://example.com')
2    echo "$result"

这里 -q 选项使 wget 运行时保持安静模式,不显示进度条等信息;-O- 指定输出到标准输出而不是文件。同样地,$(command) 将命令的输出结果存储在 result 变量中。

然而,如果使用的是旧版本的 wget,则可以这样操作:

Bash
深色版本
1    wget -qO temp_file 'http://example.com'
2    result=$(cat temp_file)
3    rm temp_file
4    echo "$result"

在这个例子中,wget 的输出被重定向到一个名为 temp_file 的临时文件中,然后使用 cat 命令将文件内容读取到变量 result 中。最后,临时文件被删除。但是,使用现代的 wget 版本,第一种方法更为简洁和高效。


普通分类: