首页 > 解决方案 > 将用于文件的输出重定向到 bash 变量

问题描述

我正在使用 bash 启动无头浏览器,并且希望输出用于文件重定向并存储在 bash 变量而不是文件中。

我可以得到下面的命令来工作它输出到一个文件:

chromium-browser --user-agent='Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1 Mobile/15E148 Safari/604.1' --headless --proxy-server='direct://' --proxy-bypass-list=* --no-proxy-server --dump-dom http://google.com > webpage_data.txt

但我希望输出通过管道传输到变量而不是文件

我尝试了下面的代码,但没有成功。我试图不为此输出创建文件。

html=chromium-browser --user-agent='Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1 Mobile/15E148 Safari/604.1' --headless --proxy-server='direct://' --proxy-bypass-list=* --no-proxy-server --dump-dom http://google.com 

还有这个

chromium-browser --user-agent='Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1 Mobile/15E148 Safari/604.1' --headless --proxy-server='direct://' --proxy-bypass-list=* --no-proxy-server --dump-dom http://google.com > html

标签: bashshellgoogle-chrome-headlessheadless-browser

解决方案


你可以试试这个:

html=$(chromium-browser --user-agent='Mozilla/5.0 \(iPhone; CPU iPhone OS 12_2 like Mac OS X\) AppleWebKit/605.1.15 \(KHTML, like Gecko\) Version/12.1 Mobile/15E148 Safari/604.1' --headless --proxy-server='direct://' --proxy-bypass-list=* --no-proxy-server --dump-dom http://google.com)

您可能需要转义括号内的几个字符。虽然,我已经逃脱了()但万一它仍然失败。


推荐阅读