pppoe脚本示例
来源:互联网 发布:java开源仓库管理系统 编辑:程序博客网 时间:2024/05/17 20:02
#!/bin/sh
#***********************************************************************
# useful tips for shell scripts
#***********************************************************************
# From AUTOCONF
prefix=/usr
exec_prefix=${prefix}
# Paths to programs
IFCONFIG=/sbin/ifconfig
PPPD=/usr/sbin/pppd
PPPOE=${exec_prefix}/sbin/pppoe
ECHO=/bin/echo
LOGGER="/usr/bin/logger -t `basename $0`"
CONFIG=/etc/ppp/pppoe.conf
#***********************************************************************
# useful tips for shell scripts
#***********************************************************************
# From AUTOCONF
prefix=/usr
exec_prefix=${prefix}
# Paths to programs
IFCONFIG=/sbin/ifconfig
PPPD=/usr/sbin/pppd
PPPOE=${exec_prefix}/sbin/pppoe
ECHO=/bin/echo
LOGGER="/usr/bin/logger -t `basename $0`"
CONFIG=/etc/ppp/pppoe.conf
copy() {
cp $1 $2
#$?是指前一条指令的结果是否正常,如果正常退出为0
if [ "$?" != 0 ] ; then
$ECHO "*** Error copying $1 to $2"
$ECHO "*** Quitting."
exit 1
fi
}
cp $1 $2
#$?是指前一条指令的结果是否正常,如果正常退出为0
if [ "$?" != 0 ] ; then
$ECHO "*** Error copying $1 to $2"
$ECHO "*** Quitting."
exit 1
fi
}
# 判断是否是root的代码
if [ "`/usr/bin/id -u`" != 0 ] ; then
$ECHO "$0: Sorry, you must be root to run this script"
exit 1
fi
# 判断config文件是否存在
if [ ! -r "$CONFIG" ] ; then
$ECHO "Oh, dear, I don't see the file '$CONFIG' anywhere. Please"
$ECHO "re-install the PPPoE client."
exit 1
fi
# 判断需要内嵌的可执行文件是否可以执行
if [ ! -x $PPPD ] ; then
$ECHO "Oops, I can't execute the program '$PPPD'. You"
$ECHO "must install the PPP software suite, version 2.3.10 or later."
exit 1
fi
export CONFIG
#定义,展开变量;注意是“点 空格“,下面的USER ETH等都是在这里定义的
. $CONFIG
#printf例子,读取外面变量
$ECHO ""
$ECHO "USER NAME"
$ECHO ""
printf "%s" ">>> Enter your PPPoE user name (default $USER): "
read U
if [ "$U" = "" ] ; then
U="$USER"
fi
# while[]; do done 这是格式
while [ true ] ; do
$ECHO ""
$ECHO "PASSWORD"
$ECHO ""
stty -echo
printf "%s" ">>> Please enter your PPPoE password: "
read PWD1
$ECHO ""
printf "%s" ">>> Please re-enter your PPPoE password: "
read PWD2
$ECHO ""
stty echo
if [ "$PWD1" = "$PWD2" ] ; then
break
fi
printf "%s" ">>> Sorry, the passwords do not match. Try again? (y/n)"
read ANS
case "$ANS" in
N|No|NO|Non|n|no|non)
$ECHO "OK, quitting. Bye."
exit 1
esac
done
#case例子,和while do done一起使用的。
while [ true ] ; do
printf "%s" ">>> Choose a type of firewall (0-2): "
read a
if [ "$a" = 0 -o "$a" = 1 -o "$a" = 2 ] ; then
break
fi
$ECHO "Please enter a number from 0 to 2"
done
case "$a" in
0)
FIREWALL=NONE
;;
1)
FIREWALL=STANDALONE
;;
2)
FIREWALL=MASQUERADE
;;
esac
fi
while [ true ] ; do
printf "%s" '>>> Accept these settings and adjust configuration files (y/n)? '
read ANS
case "ANS" in
Y|y|yes|Yes|oui|Oui)
ANS=y
;;
N|n|no|No|non|Non)
ANS=n
;;
esac
if [ "$ANS" = "y" -o "$ANS" = "n" ] ; then
break
fi
done
if [ "$ANS" = "y" ] ; then
break
fi
done
# 将变动的变量更新到conf文件中
sed -e "s&^USER=.*&USER='$U'&" \
-e "s&^ETH=.*Ð='$E'&" \
-e "s&^PIDFILE=.*&PIDFILE=\"$VARRUN/\$CF_BASE-pppoe.pid\"&" \
-e "s/^FIREWALL=.*/FIREWALL=$FIREWALL/" \
-e "s/^DEMAND=.*/DEMAND=$D/" \
-e "s/^DNSTYPE=.*/DNSTYPE=$DNSTYPE/" \
-e "s/^DNS1=.*/DNS1=$DNS1/" \
-e "s/^DNS2=.*/DNS2=$DNS2/" \
-e "s/^PEERDNS=.*/PEERDNS=$PEERDNS/" \
< $CONFIG-bak > $CONFIG
#又是$? 的用法
if [ $? != 0 ] ; then
$ECHO "** Error modifying $CONFIG"
$ECHO "** Quitting"
exit 1
fi
if [ "`/usr/bin/id -u`" != 0 ] ; then
$ECHO "$0: Sorry, you must be root to run this script"
exit 1
fi
# 判断config文件是否存在
if [ ! -r "$CONFIG" ] ; then
$ECHO "Oh, dear, I don't see the file '$CONFIG' anywhere. Please"
$ECHO "re-install the PPPoE client."
exit 1
fi
# 判断需要内嵌的可执行文件是否可以执行
if [ ! -x $PPPD ] ; then
$ECHO "Oops, I can't execute the program '$PPPD'. You"
$ECHO "must install the PPP software suite, version 2.3.10 or later."
exit 1
fi
export CONFIG
#定义,展开变量;注意是“点 空格“,下面的USER ETH等都是在这里定义的
. $CONFIG
#printf例子,读取外面变量
$ECHO ""
$ECHO "USER NAME"
$ECHO ""
printf "%s" ">>> Enter your PPPoE user name (default $USER): "
read U
if [ "$U" = "" ] ; then
U="$USER"
fi
# while[]; do done 这是格式
while [ true ] ; do
$ECHO ""
$ECHO "PASSWORD"
$ECHO ""
stty -echo
printf "%s" ">>> Please enter your PPPoE password: "
read PWD1
$ECHO ""
printf "%s" ">>> Please re-enter your PPPoE password: "
read PWD2
$ECHO ""
stty echo
if [ "$PWD1" = "$PWD2" ] ; then
break
fi
printf "%s" ">>> Sorry, the passwords do not match. Try again? (y/n)"
read ANS
case "$ANS" in
N|No|NO|Non|n|no|non)
$ECHO "OK, quitting. Bye."
exit 1
esac
done
#case例子,和while do done一起使用的。
while [ true ] ; do
printf "%s" ">>> Choose a type of firewall (0-2): "
read a
if [ "$a" = 0 -o "$a" = 1 -o "$a" = 2 ] ; then
break
fi
$ECHO "Please enter a number from 0 to 2"
done
case "$a" in
0)
FIREWALL=NONE
;;
1)
FIREWALL=STANDALONE
;;
2)
FIREWALL=MASQUERADE
;;
esac
fi
while [ true ] ; do
printf "%s" '>>> Accept these settings and adjust configuration files (y/n)? '
read ANS
case "ANS" in
Y|y|yes|Yes|oui|Oui)
ANS=y
;;
N|n|no|No|non|Non)
ANS=n
;;
esac
if [ "$ANS" = "y" -o "$ANS" = "n" ] ; then
break
fi
done
if [ "$ANS" = "y" ] ; then
break
fi
done
# 将变动的变量更新到conf文件中
sed -e "s&^USER=.*&USER='$U'&" \
-e "s&^ETH=.*Ð='$E'&" \
-e "s&^PIDFILE=.*&PIDFILE=\"$VARRUN/\$CF_BASE-pppoe.pid\"&" \
-e "s/^FIREWALL=.*/FIREWALL=$FIREWALL/" \
-e "s/^DEMAND=.*/DEMAND=$D/" \
-e "s/^DNSTYPE=.*/DNSTYPE=$DNSTYPE/" \
-e "s/^DNS1=.*/DNS1=$DNS1/" \
-e "s/^DNS2=.*/DNS2=$DNS2/" \
-e "s/^PEERDNS=.*/PEERDNS=$PEERDNS/" \
< $CONFIG-bak > $CONFIG
#又是$? 的用法
if [ $? != 0 ] ; then
$ECHO "** Error modifying $CONFIG"
$ECHO "** Quitting"
exit 1
fi
#备份文件的操作
$ECHO "Adjusting /etc/ppp/pap-secrets and /etc/ppp/chap-secrets"
if [ -r /etc/ppp/pap-secrets ] ; then
$ECHO " (But first backing it up to /etc/ppp/pap-secrets-bak)"
copy /etc/ppp/pap-secrets /etc/ppp/pap-secrets-bak
else
cp /dev/null /etc/ppp/pap-secrets-bak
fi
if [ -r /etc/ppp/chap-secrets ] ; then
$ECHO " (But first backing it up to /etc/ppp/chap-secrets-bak)"
copy /etc/ppp/chap-secrets /etc/ppp/chap-secrets-bak
else
cp /dev/null /etc/ppp/chap-secrets-bak
fi
#以exit结束
exit 0
$ECHO "Adjusting /etc/ppp/pap-secrets and /etc/ppp/chap-secrets"
if [ -r /etc/ppp/pap-secrets ] ; then
$ECHO " (But first backing it up to /etc/ppp/pap-secrets-bak)"
copy /etc/ppp/pap-secrets /etc/ppp/pap-secrets-bak
else
cp /dev/null /etc/ppp/pap-secrets-bak
fi
if [ -r /etc/ppp/chap-secrets ] ; then
$ECHO " (But first backing it up to /etc/ppp/chap-secrets-bak)"
copy /etc/ppp/chap-secrets /etc/ppp/chap-secrets-bak
else
cp /dev/null /etc/ppp/chap-secrets-bak
fi
#以exit结束
exit 0
- pppoe脚本示例
- [PPPOE]RP-PPPOE脚本分析
- linux下pppoe脚本分析!
- pppoe
- PPPoE
- pppoe
- PPPoE
- PPPOE
- PPPOE
- pppoe
- PPPOE
- PPPoE
- PPPoE
- PPPOE
- PPPoE
- 脚本示例
- mysql脚本创建示例
- Oracle常用脚本示例
- 关于局部变量、全局变量、形式变量和实参变量
- 64位系统下C#解压缩文件
- 在Mac下,快速搭建针对WP8应用的PhoneGap开发环境
- windows server 2012 r2 rtm 激活成功
- linux上svn连接visual svn server时ssl鉴权失败,问题解决
- pppoe脚本示例
- 【最多约数问题】
- 周记,2013.11.1
- Delphi XE 检查内存泄露
- 博客--start
- LeetCode题解:Remove Duplicates from Sorted List II
- 谷歌浏览器Chrome缓存路径
- LeetCode题解:Simplify Path
- LeetCode题解:Roman to Integer