Python 如果命令的输出缺少特定字符串,则发出警报
使用Python 如果命令的输出缺少特定字符串,则发出警报,python,perl,bash,shell,Python,Perl,Bash,Shell,使用bash-script/python/perl-script,是否可以显示没有字符串的命令输出,例如 curl -i http://www.google.com HTTP/1.1 302 Found Location: http://www.google.com.hk/ Cache-Control: private Content-Type: text/html; charset=UTF-8 我想做的是: 如果输出包含302,则不打印任何内容 否则,将丢失打印302 找到$grep-q
bash-script/python/perl-script
,是否可以显示没有字符串的命令输出,例如
curl -i http://www.google.com
HTTP/1.1 302 Found
Location: http://www.google.com.hk/
Cache-Control: private
Content-Type: text/html; charset=UTF-8
我想做的是:
302
找到$grep-q302http/1.1302
>地点:http://www.google.com.hk/
>缓存控制:专用
>内容类型:text/html;字符集=UTF-8
>EOF
$grep-q302http/1.1312已找到
>地点:http://www.google.com.hk/
>缓存控制:专用
>内容类型:text/html;字符集=UTF-8
>EOF
302被遗漏了
$grep-q302http/1.1302已找到
>地点:http://www.google.com.hk/
>缓存控制:专用
>内容类型:text/html;字符集=UTF-8
>EOF
$grep-q302http/1.1312已找到
>地点:http://www.google.com.hk/
>缓存控制:专用
>内容类型:text/html;字符集=UTF-8
>EOF
302被遗漏了
您是指以下内容吗:
if [ ! `echo 302 | grep 302` ] ; then echo 302 is missed; fi
您可以使用任何适当的命令替换echo 302
相当于:
echo 302 | grep 302 > /dev/null || echo "302 is missed"
你的意思是像下面这样的东西吗
if [ ! `echo 302 | grep 302` ] ; then echo 302 is missed; fi
您可以使用任何适当的命令替换echo 302
相当于:
echo 302 | grep 302 > /dev/null || echo "302 is missed"
您可以将
curl | grep
silented的结果用作测试:
if ! `curl -i -s http://www.google.com|grep -q 302` ; then echo "302 is missed" ; fi
您可以将
curl | grep
silented的结果用作测试:
if ! `curl -i -s http://www.google.com|grep -q 302` ; then echo "302 is missed" ; fi
您可以告诉
curl
仅输出http代码,如果您只感兴趣的话
例如:
$ curl -Is -w %{http_code} -o /dev/null http://stackoverflow.com
200
上面使用的卷曲选项包括:
:仅获取HTTP头-I
:无提示。不要表现出进步 仪表或错误信息-s
:写什么。在这种情况下,只有 http_代码-w
:将输出发送到何处-o
[[ $(curl -Is -w %{http_code} -o /dev/null http://stackoverflow.com) -ne 302 ]] && echo "302 is missed"
您可以告诉
curl
仅输出http代码,如果您只感兴趣的话
例如:
$ curl -Is -w %{http_code} -o /dev/null http://stackoverflow.com
200
上面使用的卷曲选项包括:
:仅获取HTTP头-I
:无提示。不要表现出进步 仪表或错误信息-s
:写什么。在这种情况下,只有 http_代码-w
:将输出发送到何处-o
[[ $(curl -Is -w %{http_code} -o /dev/null http://stackoverflow.com) -ne 302 ]] && echo "302 is missed"
我认为这会起到作用,尽管总是先测试
perl -e '$pat = shift; print "$pat is missed\n" unless qx{@ARGV} =~ /\Q$pat\E/' 302 curl -i http://www.google.com
我认为这会起到作用,尽管总是先测试
perl -e '$pat = shift; print "$pat is missed\n" unless qx{@ARGV} =~ /\Q$pat\E/' 302 curl -i http://www.google.com
可能希望
head-n1
避免在响应中的其他位置拾取“302”可能希望head-n1
避免在响应中的其他位置拾取“302”这正是我需要的。这正是我需要的。谢谢