local _IFDEVS=$IFDEVS _ifs _name _media _hn
while : ; do
ask_which "interface" "do you wish to initialize" "$_IFDEVS" \
"" "No more interfaces to initialize"
[[ $resp == done ]] && break
_ifs=$resp
_hn=/etc/hostname.$_ifs
ask "Symbolic (host) name for $_ifs?" "$(hostname -s)"
_name=$resp
_media=$(ifconfig -m $_ifs | grep "media ")
if [[ -n $_media ]]; then
cat << __EOT
The media options for $_ifs are currently
$(ifconfig -m $_ifs | sed -n '/supported/D;/media:/p')
__EOT
ask_yn "Do you want to change the media options?"
case $resp in
y) cat << __EOT
Supported media options for $_ifs are:
$_media
__EOT
ask "Media options for $_ifs?"
_media=$resp
ifconfig $_ifs $_media || return 1
;;
n) _media=
;;
esac
fi
rm -f $_hn
v4_config "$_ifs" "$_media" "$_name" "$_hn"
[[ -f $_hn ]] && _IFDEVS=$(rmel "$_ifs" $_IFDEVS)
done
}
v4_info() {
ifconfig $1 inet | sed -n '
1s/.*<UP,.*/UP/p
1s/.*<.*/DOWN/p
/inet/s/netmask//
/inet/s///p'
}
dhcp_request() {
local _ifs=$1 _hostname=$2
echo "initial-interval 1;" >; /etc/dhclient.conf
if [[ -n $_hostname ]]; then
echo "send host-name \"$_hostname\";" >;>; /etc/dhclient.conf
echo "Issuing hostname-associated DHCP request for $_ifs."
else
echo "Issuing free-roaming DHCP request for $_ifs."
fi
cat >;>; /etc/dhclient.conf << __EOT
request subnet-mask,
broadcast-address,
routers,
domain-name,
domain-name-servers,
host-name;
__EOT
cat >;>; /etc/resolv.conf.tail << __EOT
lookup file bind
__EOT
dhclient $_ifs
set -- $(v4_info $_ifs)
if [[ $1 == UP && $2 == "0.0.0.0" ]]; then
ifconfig $_ifs delete down
rm /etc/dhclient.conf /etc/resolv.conf.tail
return 1
fi
# cp /etc/dhclient.conf /tmp/dhclient.conf
# cp /etc/resolv.conf.tail /tmp/resolv.conf.tail
return 0
}
v4_config() {
local _ifs=$1 _media=$2 _name=$3 _hn=$4 _prompt
| 论坛热门帖子: | [lch203] 写得蛮好的linux学习笔记(10-21) [黑马制造] 学习java的30个目标(10-19) [笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19) [udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18) [沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18) |
| TAG标签: | 过程 制作 if then echo fi resp done do RULES 文件 |
注册
个人空间
