使用bash

时间:2017-01-26 14:01:36

标签: bash

我需要通过执行以下操作来检查远程文件是否存在:url响应:

curl -u myself:XXXXXX -Is https://mylink/path/to/file | head -1

什么可以提供这样的东西:

'HTTP/1.1 200 OK
'

'HTTP/1.1 404 Not Found
'

现在,我想从上面的结果字符串中提取像200这样的http状态代码,并将数字分配给变量。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

使用-o选项将标头发送至/dev/null,并使用-w选项仅输出 状态。

$ curl -o /dev/null -u myself:XXXXXX -Isw '%{http_code}\n' https://mylink/path/to/file
200
$

如果您打算将状态捕获到变量,则可以从格式中省略换行符。

$ status=$(curl ... -Isw '%{http_code}' ...)

答案 1 :(得分:0)

使用grep:

curl -u myself:XXXXXX -Is https://mylink/path/to/file | head -1 | grep -o '[0-9][0-9][0-9]'