在工作中,经常会遇到一个问题,就是测试某个网站或站点的连通性,通常我们都会使用 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