shell编程中函数的应用


函数: 代码复用
库:so
定义函数:
结构化编程,不能独立运行,需要调用时执行,
function 函数名 {
command
}

函数名

FUNCNMAE () {
command
}

自定义执行状态返回值:
return #
0-255

接受参数的函数:
./a.sh m n

#!/bin/bash
cat << EOF
d|D)show disk usages
m|M)show memory usages
s|S)show swap usages
q|Q)quit.
EOF
read -p "Your choice:" CHOICE
until [ $CHOICE == "q" -o $CHOICE == "Q" ];do
case $CHOICE in
d|D)df -h;;
m|M)free -m|grep "^Mem" ;;
s|S)free -m|grep "^Swap" ;;
*)
cat << EOF
d|D)show disk usages
m|M)show memory usages
s|S)show swap usages
q|Q)quit
EOF
read -p "Your choice:" CHOICE
esac
cat << EOF
d|D)show disk usages
m|M)show memory usages
s|S)show swap usages
q|Q)quit
EOF
read -p "Your choice:" CHOICE
done

使用函数
#!/bin/bash
function showmenu {
cat << EOF
d|D)show disk usages
m|M)show memory usages
s|S)show swap usages
q|Q)quit.
EOF
}
showmenu
read -p "Your choice:" CHOICE
until [ $CHOICE == "q" -o $CHOICE == "Q" ];do
case $CHOICE in
d|D)df -h;;
m|M)free -m|grep "^Mem" ;;
s|S)free -m|grep "^Swap" ;;
*)
showmenu
read -p "Your choice:" CHOICE
esac
showmenu
read -p "Your choice:" CHOICE
done


#!/bin/bash
showmenu () {
cat << EOF
d|D)show disk usages
m|M)show memory usages
s|S)show swap usages
q|Q)quit.
EOF
}
showmenu
read -p "Your choice:" CHOICE
until [ $CHOICE == "q" -o $CHOICE == "Q" ];do
case $CHOICE in
d|D)df -h;;
m|M)free -m|grep "^Mem" ;;
s|S)free -m|grep "^Swap" ;;
*)
showmenu
read -p "Your choice:" CHOICE
esac
showmenu
read -p "Your choice:" CHOICE
done

引用函数执行结果
#!/bin/bash
#
TWOINT () {
A=9
B=7
C=$[$A+$B]
echo $C
}
M=11
SUM=$[$M+`TWOINT`]
echo $SUM

引用函数执状态结果:
#!/bin/bash
#
TWOINT () {
A=9
B=7
C=$[$A+$B]
echo $C
}
M=11
SUM=$[$M+`TWOINT`]
echo $SUM
echo $?


测试是否添加用户
#!/bin/bash
ADDUSER(){
USERNAME=hadoop
if ! id -u $USERNAME &> /dev/null;then
   useradd $USERNAME
   echo $USERNAME |passwd --stdin $USERNAME &> /dev/null
   return 0
else
   return 1
fi


#!/bin/bash
ADDUSER(){
USERNAME=hadoop
if ! id -u $USERNAME &> /dev/null;then
   useradd $USERNAME
   echo $USERNAME |passwd --stdin $USERNAME &> /dev/null
   return 0
else
   return 1
fi


参数传递
#!/bin/bash
#
TWOINT () {
echo $[$1+$2]
}
TWOINT 5 6
SUM=`TWOINT 5 6`
echo $SUM

函数复用
#!/bin/bash
#
TWOINT () {
echo $[$1+$2]
}
for I in {1..10};do
  let J=$[$I+1]
  TWOINT $I $J
done


#!/bin/bash
#
TWOINT () {
echo $[$1+$2]
}
for I in {1..10};do
  let J=$[$I+1]
  echo "$I+$J=`TWOINT $I $J`"
done

#!/bin/bash
ADDUSER(){
USERNAME=$1
if ! id -u $USERNAME &> /dev/null;then
   useradd $USERNAME
   echo $USERNAME |passwd --stdin $USERNAME &> /dev/null
   return 0
else
   return 1
fi
}
for I in {1..10};do
ADDUSER user$I
if [ $? -eq 0 ];then
   echo "add user user$I finished."
else
  echo "add user$I Failure"
fi
done

ping主机看是否在线
#/bin/bash
#
PING() {
  for I in $1;do
   if ping -c 1 -W 1 $1 &> /dev/null;then
    return 0
    else
    return 1
   fi
 done
}
for I in {250..254};do
  PING 172.16.40.$I
  if [ $? -eq 0 ];then
     echo "172.16.40.$I is up."
  else
     echo "172.16.40.$I is down."
  fi
done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值