bash隐藏默认的stderr代码并用我自己的代码替换

trbvm

当我使用时,ping foo.com我会得到一个响应,或者ping: unknown host foo.com我正在使用此脚本来显示自定义响应

status=$(ping -c 1 foo.com 2> /dev/null)

if [[ status -ne '200' ]]; then
     echo "site found"
    else
     echo "site not found" 
fi

上面的问题是,如果找到站点,我会得到site found响应,但是如果不是错误消息,我会得到默认响应ping: unknown host foo.com

更新。

declare -A websites 
websites=("" "")
    function ping_sites(){
        if [[ $1 != 'all' ]]; then 
            status=$(curl -I  --stderr /dev/null $1 | head -1 | cut -d' ' -f2)
            result=$(ping -c 1 $1 | grep 'bytes from' | cut -d = -f 4 | awk {'print $1'} 2> /dev/null)

            if [[ status -ne '200' ]]; then
                echo -e "$1  $c_red \t $status FAIL $c_none"
            else
                echo -e "$1  $c_green \t $status OK $c_none"
            fi
        else
          ... 

ping all 
ping foo.com
PSkocik
pingWrap(){
  if ping -c 1 "$1" >/dev/null 2>&1; then
    echo "site found"
  else
    echo "site not found" 
  fi
}
pingWrap foo.com
pingWrap localhost

if ping -c 1 "$1" >/dev/null 2>&1; then 禁止所有输出并测试ping命令的返回状态,该状态为0(成功)或其他值(失败)。

[[ status -ne '200' ]]接受字符串status和字符串200,将每个字符串转换为整数,并测试两个整数的不相等性,这听起来很荒谬。

Shell命令的返回状态保存在该$?变量中,与HTTP返回代码无关。HTTP在TCP之上运行,而ping甚至不使用TCP。


HTTP状态

如果目标站点启动并且使用HTTP,则可以使用以下命令在stdout上获取http状态:

httpStatus(){ curl -s -w %{http_code} "$@" -o /dev/null; }

例如,

httpStatus google.com #200
httpStatus google.com/secret #301

st="`httpStatus "$1"`" &&
case "$st" in
   301) echo Moved permanently;;
   200) echo Success;;
     *) echo Unknown;;
esac

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

查找并用通配符替换notepad ++中的html代码

来自分类Dev

我该如何添加更多功能?并设置 在Xamarin表单中,通过删除“ =>”并用每个代码块替换?

来自分类Dev

是否可以“拦截”复制/剪切/粘贴操作并将其替换为我自己的代码?

来自分类Dev

是否可以“拦截”复制/剪切/粘贴操作并将其替换为我自己的代码?

来自分类Dev

用我自己的代码检测对DependencyProperty的更改

来自分类Dev

我如何从html代码编写自己的xpath

来自分类Dev

从我自己的语言访问本机代码

来自分类Dev

在Docker映像中用我自己的默认配置替换

来自分类Dev

默认CSS接管我的代码的问题

来自分类Dev

Magento:如何从URL隐藏默认的商店视图代码

来自分类Dev

Magento:如何从URL隐藏默认的商店视图代码

来自分类Dev

可以通过我们自己的代码扩展哪个PCR?

来自分类Dev

在wordpress中添加我自己创建的小部件代码

来自分类Dev

我自己的程序中Microsoft .NET源代码的用法

来自分类Dev

我如何寻找父母中包含自己代码的父母?

来自分类Dev

如何停止输出我自己的HTML源代码?

来自分类Dev

Intellij IDEA 如何添加我自己的密钥以完成代码

来自分类Dev

提取并用bash替换字符串

来自分类Dev

如何使用我自己的使用Greasemonkey的实现替换JavaScript函数(从远程文件中加载了JavaScript功能以及其他代码)?

来自分类Dev

从我的 PHP 网站的 URL 中隐藏动态页面“movie.php?id=10”并用连字符替换空格

来自分类Dev

我如何用我自己的变量替换默认的JSON.stringify变量K和A

来自分类Dev

我如何用我自己的变量替换默认的JSON.stringify变量K和A

来自分类Dev

EF代码首先在我定义的代码旁边添加它自己的FK

来自分类Dev

Android代码混淆。我想隐藏Parse.com的键

来自分类Dev

我是否需要在代码隐藏中调用NotifyPropertyChange()?

来自分类Dev

为什么我在Azure上的代码隐藏出现404错误?

来自分类Dev

我是否需要在代码隐藏中调用NotifyPropertyChange()?

来自分类Dev

为什么我在Azure上的代码隐藏出现404错误?

来自分类Dev

如何在我的网站上隐藏代码/文件?

Related 相关文章

  1. 1

    查找并用通配符替换notepad ++中的html代码

  2. 2

    我该如何添加更多功能?并设置 在Xamarin表单中,通过删除“ =>”并用每个代码块替换?

  3. 3

    是否可以“拦截”复制/剪切/粘贴操作并将其替换为我自己的代码?

  4. 4

    是否可以“拦截”复制/剪切/粘贴操作并将其替换为我自己的代码?

  5. 5

    用我自己的代码检测对DependencyProperty的更改

  6. 6

    我如何从html代码编写自己的xpath

  7. 7

    从我自己的语言访问本机代码

  8. 8

    在Docker映像中用我自己的默认配置替换

  9. 9

    默认CSS接管我的代码的问题

  10. 10

    Magento:如何从URL隐藏默认的商店视图代码

  11. 11

    Magento:如何从URL隐藏默认的商店视图代码

  12. 12

    可以通过我们自己的代码扩展哪个PCR?

  13. 13

    在wordpress中添加我自己创建的小部件代码

  14. 14

    我自己的程序中Microsoft .NET源代码的用法

  15. 15

    我如何寻找父母中包含自己代码的父母?

  16. 16

    如何停止输出我自己的HTML源代码?

  17. 17

    Intellij IDEA 如何添加我自己的密钥以完成代码

  18. 18

    提取并用bash替换字符串

  19. 19

    如何使用我自己的使用Greasemonkey的实现替换JavaScript函数(从远程文件中加载了JavaScript功能以及其他代码)?

  20. 20

    从我的 PHP 网站的 URL 中隐藏动态页面“movie.php?id=10”并用连字符替换空格

  21. 21

    我如何用我自己的变量替换默认的JSON.stringify变量K和A

  22. 22

    我如何用我自己的变量替换默认的JSON.stringify变量K和A

  23. 23

    EF代码首先在我定义的代码旁边添加它自己的FK

  24. 24

    Android代码混淆。我想隐藏Parse.com的键

  25. 25

    我是否需要在代码隐藏中调用NotifyPropertyChange()?

  26. 26

    为什么我在Azure上的代码隐藏出现404错误?

  27. 27

    我是否需要在代码隐藏中调用NotifyPropertyChange()?

  28. 28

    为什么我在Azure上的代码隐藏出现404错误?

  29. 29

    如何在我的网站上隐藏代码/文件?

热门标签

归档