在bash中附加一个字符串

我正在尝试使用curl和awk获取下载URL,然后想要向该URL附加内容.

这里有一些我的代码

IMAGE=$(curl -I -s https://downloads.raspBerrypi.org/raspbian_lite_latest | awk '/Location/ {print $2}')
CHECKSUM="$IMAGE.sha256"

echo $IMAGE
echo $CHECKSUM

我得到的是它在某种程度上在一开始就替换零件.

https://downloads.raspBerrypi.org/raspbian_lite/images/raspbian_lite-2018-11-15/2018-11-13-raspbian-stretch-lite.zip
.sha256/downloads.raspBerrypi.org/raspbian_lite/images/raspbian_lite-2018-11-15/2018-11-13-raspbian-stretch-lite.zip

我有点无奈,因为以下工作符合预期:

A="https""://abc.org/a_b/a.zip" # looks weird,but full URLs are not allowed here
B="$A.sha256"
echo $B

我究竟做错了什么?

解决方法

当你对你的字符串进行hexdump时,你会看到它使用了windows line endings(带回车符):

echo $IMAGE | hexdump -C
00000000  68 74 74 70 73 3a 2f 2f  64 6f 77 6e 6c 6f 61 64  |https://download|
00000010  73 2e 72 61 73 70 62 65  72 72 79 70 69 2e 6f 72  |s.raspBerrypi.or|
00000020  67 2f 72 61 73 70 62 69  61 6e 5f 6c 69 74 65 2f  |g/raspbian_lite/|
00000030  69 6d 61 67 65 73 2f 72  61 73 70 62 69 61 6e 5f  |images/raspbian_|
00000040  6c 69 74 65 2d 32 30 31  38 2d 31 31 2d 31 35 2f  |lite-2018-11-15/|
00000050  32 30 31 38 2d 31 31 2d  31 33 2d 72 61 73 70 62  |2018-11-13-raspb|
00000060  69 61 6e 2d 73 74 72 65  74 63 68 2d 6c 69 74 65  |ian-stretch-lite|
00000070  2e 7a 69 70 0d 0a                                 |.zip..|
00000076

解决这个问题,请使用

IMAGE=$(curl -I -s https://downloads.raspBerrypi.org/raspbian_lite_latest | awk '/Location/ {print $2}' | tr -d "\r")

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...