Bash:使用curl / wget将网页内容转换为变量

时间:2016-09-01 11:46:08

标签: bash curl wget

当我执行这些行时:

res1=$(curl -sSL http://ipecho.net/plain | xargs echo)
echo $res1

我得到了这个输出,这意味着我实际上能够将this webpage的内容放入变量中:

92.12.242.124

========================

现在,当我尝试使用another URL

res2=$(curl -sSL https://raw.github.com/n-marshall/system-setup/master/common/configs/.gitignore_global | xargs echo)
echo $res2

我得到了这个输出:

xargs: unterminated quote

有人能指导我将第二个链接的内容变成变量吗?谢谢。

(我的实际目标是将其复制/附加到本地文件,如果这会改变答案)

==================================

编辑:我也无法用wget实现同样的目标,但是任何带有wget的解决方案都是受欢迎的

EDIT2:提供更多背景......

我正在寻找一种解决方案:

  • 处理系统文件(即使用sudo,但重定向与sudo不兼容)
  • 将此参数作为参数传递给另一个函数

就像这个(附加但添加了分隔符):

append() {
    if [ "$1" = "--separate" ]; then
        [[ -s $3 ]] && printf "\n#----------------------------------------------------------------\n\n" | sudo tee -a $3
        echo $2 | sudo tee -a $3
        printf "\n" | sudo tee -a $3
    else
        echo $1 | sudo tee -a $2
    fi
}

1 个答案:

答案 0 :(得分:1)

如果您只想将curl输出复制到本地文件,则不需要变量。只需将curl命令重定向到您的文件:

curl -sSL https://raw.github.com/n-marshall/system-setup/master/common/configs/.gitignore_global > file

将输出附加到现有文件:

curl -sSL https://raw.github.com/n-marshall/system-setup/master/common/configs/.gitignore_global >> file

修改

使用sudo

sudo bash -c 'curl -sSL https://raw.github.com/n-marshall/system-setup/master/common/configs/.gitignore_global > file2'