curl: (3) 在 URL 中发现非法字符:${...%?} 不起作用

Hél*_*vel 5 bash curl

我整个上午都在寻找解决我的问题的方法,尤其是在https://stackoverflow.com中标题中具有相同错误名称的 4 个帖子中,但这些解决方案对我不起作用。

我想在 Bash 脚本中执行几个简单的 cURL 请求。文件末尾的请求始终有效,无论它是什么请求。但是之前的请求返回错误:

curl: (3) 在 URL 中发现非法字符

我很确定它与我文件中的回车有关。但我不知道如何处理它。如下图所示,我尝试使用${url1%?}. 我也试过${url1%$'\r'},但它没有改变任何东西。

终端中文件 + 结果的屏幕截图:

文件截图+终端结果

有任何想法吗?

Soc*_*owi 8

如果您的行以 结尾\r\r则从 中剥离$url将不起作用,因为该行

curl -o NUL "{url1%?}
Run Code Online (Sandbox Code Playgroud)

也以 a 结尾\r,它再次附加到 url 参数。

注释掉\r,即

url1="www.domain.tld/file"
curl -o NUL "${url1%?}" #
Run Code Online (Sandbox Code Playgroud)

或者

url1="www.domain.tld/file" #
curl -o NUL "$url1" #
Run Code Online (Sandbox Code Playgroud)

或在执行前转换文件

tr -d '\r' < test.sh > testWithoutR.sh
Run Code Online (Sandbox Code Playgroud)