Bash 如何将base64命令与CURL一起使用?
如果我尝试对字体文件进行base64编码并将内容输出到文本文件,如下所示:Bash 如何将base64命令与CURL一起使用?,bash,shell,curl,Bash,Shell,Curl,如果我尝试对字体文件进行base64编码并将内容输出到文本文件,如下所示: base64 myfont.woff2 > output.txt 考虑到字体存储在本地,它的效果非常好。但是,如果我尝试从web url和base64输出中卷曲字体,则会导致一堆乱七八糟的信息保存到文件中,例如: #!/bin/bash declare -a arr=( "https://fonts.gstatic.com/s/opensans/v14/K88pR3goAWT7BTt32Z01mxJtnK
base64 myfont.woff2 > output.txt
考虑到字体存储在本地,它的效果非常好。但是,如果我尝试从web url和base64输出中卷曲字体,则会导致一堆乱七八糟的信息保存到文件中,例如:
#!/bin/bash
declare -a arr=(
"https://fonts.gstatic.com/s/opensans/v14/K88pR3goAWT7BTt32Z01mxJtnKITppOI_IvcXXDNrsc.woff2"
)
for i in "${arr[@]}"
do
content="$(curl -s "$i")"
echo base64 "$content" > output.txt
done
如何使其工作?您可以通过管道将
curl
输出到base64
:
for i in "${arr[@]}"; do
curl -s "$i" | base64
done > output.txt
base64
命令希望将文本解码为输入,而不是参数。可以直接将管道卷曲到它:
curl -s "$url" | base64
或者,在原始代码中捕获变量中的curl结果后,使用here字符串:
base64 <<<"$content"
base64