小技巧:让ping 命令更人性化

在工作中,经常会遇到一个问题,就是测试某个网站或站点的连通性,通常我们都会使用 ping nc telnet mtr 等命令进行测试。可是有时候客户丢过来的是一条这样的url:

http|https://xxx.xxx.com/a/b/c.html

我们拿到 url 之后,还需要删除前面的 http:// 或 https:// 才能进行测试。虽然在命令行删除也比较方便。但是我总是笔记懒的。感觉这个命令使用频率非常高,如果每次拿到 URL 都要去删,这无疑是很浪费时间的重复性工作。

我们可以这样调整,写一个函数 eping,里面首先对传入的参数进行简单的字符串判断,如果字符串开头包含 http 或 https 则进行相应的处理后在进行 eping。

eping () {

    if [[ $1  =~ ^"http" ]]
    then
        echo $1 | awk -F'[/:]' '{print $4}' | xargs ping
    else
       /sbin/ping $1
    fi
}

把上面的代码保存到 ~/.zhsrc 中(注:我这里是有的是 zsh),执行

source ~/.zshrc

尝试下吧!

注意,由于我是 mac 系统ping 的实际命令是在 /sbin/ping,如果是 linux 请使用 whereis ping 查看

[root@centos7 ~]# whereis ping
ping: /usr/bin/ping /usr/share/man/man8/ping.8.gz