所以在工作中我使用vpn连接,之后我必须手动设置我的路由表以便一切正常,我正在尝试编写一个bash脚本,它可以轻松区分我的家庭连接和我的工作连接并设置正确的网关:
#!/bin/bash
# Does the ppp0 interface exist?
cat /proc/net/dev | grep ppp0 > /dev/null
ppp_check=$?
if [ $ppp_check -ne 0 ]; then
# I'm at home and you should set the ppp0 gateway
ip r c default via $(ifconfig ppp0 | awk -F "P-t-P:" '{print $2}' | awk -F " " '{print $1}' | tr "\n" " " | awk '{$1=$1};1')
else
# I'm at work so you should set my work gateway
ip r c default via 1.1.1.1
fi
ip r a 2.2.2.2/24 dev tun0
.
.
.
ip r a 10.10.10.10/24 dev tun0
问题是脚本总是执行设置家庭网关的代码,即使我在工作,也应该跳过第一个IF语句。
有什么想法吗?
答案 0 :(得分:1)
您可以稍微简化测试:
if grep -q ppp0 /proc/net/dev ; then
# I'm at home
else
# I'm at work
fi
“grep -q”表示您不需要重定向输出。