函数:功能 function。
作用:代码重用。
函数的定义:
1.使用function关键字。
function FUNNAME {
COMMAND
...
}
2.使用FUNNAME()
FUNNAME() {
COMMAND
...
}
函数的调用:
使用FUNNAME 或 FUNMANEW()调用。
返回值的调用:
1.函数的返回值
使用反引号``
2.函数的状态返回值
echo $?
自定义状态返回值:
return NUM
NUM取值为0-255。
1.写一个脚本,显示磁盘 内存和swap 情况。
#!/bin/bash
function MENU{
cat << EOF
d|D) show disk usage
m|M) show memory usage
s|S) show swap suage
q|Q) quit
EOF
}
SHOW
read -p "your choice"CHOICE
until [ $CHOIE == ‘q‘ -o $CHOICE == ‘Q‘];do
case in
d|D) df -lh;;
m|M) free|grep "^Mem";;
s|S) free|grep "Swap";;
*) SHOWMENU
read -p "your choice"CHOICE
;;
esca
read -p "your choice"CHOICE
SHOWMENU
done
2.写一个脚本,添加user1-user10账号
#!/bin/bash
ADDUSER(){
USERNAME=$1
if !id -u $USEANAME &> /dev/null;then
useradd $USERNAME
echo $USERNAME | passwd $USERNAME --stdin &>/dev/null
return 0
else
return 1
fi
}
for I in {1..10};do
ADDUSER user$I
if [$? -eq 0] ;then
echo "user$I add ok"
else
echo "user$I fail"
if
done
3.计算1至10以内相邻2数之和
#!/bin/bash
TOSUM{
echo $[$1+$2]
}
for I in {1..10};do
let J=$[$I+1]
echo "$I plus $J is `TOSUM $I $J`"
done
4.写一个脚本,判定192.168.1.x网段内主机的在线情况。
#!/bin/bash
NETPING{
if ping -c 1 -W 1 $1 &> /dev/null;then
return 0
eles
return 1
fi
}
for I in {1..254};do
NETPING 192.168.1.$I
if [$? -eq 0];then
echo "192.168.1.$I is up"
else
echo "192.168.1.$I is dwon"
fi
done
5.写一个脚本,判断多个用户是否存在,若存在则返回shell和uid,不存在则提示。在主程序中让用户自己输入用户名,判断完成后不退出继续判断。q退出
#!/bin/bash
USERID{
if id $1 &> /dev/null;then
echo "`grep ^$1 /etc/passwd`|cut -d: -f 3,7`"
return 0
else
echo "$1 not exist"
return 1
fi
}
USERNAME=$1
until $1=‘q‘;do
USERID $USERNAME
read -p "username" USERNAME
done
本文出自 “小私的blog” 博客,请务必保留此出处http://ggvylf.blog.51cto.com/784661/1612828
原文地址:http://ggvylf.blog.51cto.com/784661/1612828