done
}
ask_yn() {
local _q=$1 _a=${2:-no} _resp
typeset -l _resp
while : ; do
ask "$_q" "$_a"
_resp=$resp
case $_resp in
y|yes) resp=y ; return ;;
n|no) resp=n ; return ;;
esac
done
}
ask_which() {
local _name=$1 _query=$2 _devs=$3 _defdev=$4 _err=$5
set -- $_devs
if [[ $# -lt 1 ]]; then
echo "${_err:=No ${_name}s found}."
resp=done
return
fi
: ${_defdev:=$1}
_devs="$*"
while : ; do
ask "Available ${_name}s are: ${_devs}.\nWhich one ${_query}? (or 'done')" "$_defdev"
[[ $resp == done ]] && break
if isin "$resp" $_devs; then
makedev $resp && break
else
echo "'$resp' is not a valid choice."
fi
done
}
isin() {
local _a=$1 _b
shift
for _b; do
[ "$_a" = "$_b" ] && return 0
done
return 1
}
addel() {
local _a=$1
shift
echo -n "$*"
isin "$_a" $* || echo -n " $_a"
}
rmel() {
local _a=$1 _b
shift
for _b; do
[ "$_a" != "$_b" ] && echo -n "$_b "
done
}
edit_tmp_file() {
local _file=$1
ask_yn "Edit $_file with $EDITOR?"
[[ $resp == y ]] && $EDITOR /tmp/$_file
}
manual_net_cfg() {
ask_yn "Do you want to do any manual network configuration?"
[[ $resp == y ]] && { echo "Type 'exit' to return to $MODE." ; sh ; }
}
makedev() {
local _dev=$1 _node=/dev/r${1}c
if isin $_dev $IFDEVS || [[ -c $_node || -z ${_dev##+([0-9])} ]] ; then
return 0
fi
if [[ ! -r /dev/MAKEDEV ]] ; then
echo "No /dev/MAKEDEV. Can't create device nodes for ${_dev}."
return 1
fi
(cd /dev; sh MAKEDEV $_dev)
[[ -c $_node ]] || return 1
DEVSMADE=`addel $_dev $DEVSMADE`
}
addhostent() {
sed "/ $2\$/d" /etc/hosts >; /etc/hosts.new
mv /etc/hosts.new /etc/hosts
echo "$1 $2" >;>; /etc/hosts
}
configure_ifs() {
| 论坛热门帖子: | [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 文件 |
注册
个人空间
