小编Chr*_*oll的帖子

在 shell 脚本中从 curl 检索 HTTP 状态代码和内容

我想要一个脚本来卷曲到一个文件并将状态代码放入一个变量中(或者,至少让我能够测试状态代码)

我可以看到我可以在两个电话中完成,例如

url=https://www.gitignore.io/api/nonexistentlanguage
x=$(curl -sI $url | grep HTTP | grep -oe '\d\d\d')
if [[ $x != 200  ]] ; then
  echo "$url SAID $x" ; return
fi
curl $url # etc ...
Run Code Online (Sandbox Code Playgroud)

但大概有一种方法可以避免多余的额外调用?

$? 没有帮助:状态码 404 仍然得到 0 的返回码

shell-script curl

3
推荐指数
1
解决办法
9924
查看次数

Fish shell :通过管道捕获多行输出到变量或读取

如果你

curl https://www.toptal.com/developers/gitignore/api/python
Run Code Online (Sandbox Code Playgroud)

您会按预期看到文件,并带有换行符。但如果我

set response (curl https://www.toptal.com/developers/gitignore/api/python)
echo $response
Run Code Online (Sandbox Code Playgroud)

鱼中的换行符消失了。我看过鱼read但是

url $gitignoreurlbase/python | read response # I have also tried read -d 'blah'
echo $response
Run Code Online (Sandbox Code Playgroud)

只显示空白。

如何捕获多行输出?

fish

3
推荐指数
1
解决办法
3617
查看次数

标签 统计

curl ×1

fish ×1

shell-script ×1