Linux-shell篇之函数用法

脚本编程之函数:

function:功能

结构化编程,不能独立运行,需要调用时执行,可以被多次调用

定义一个函数(下面两种用法等效)
function FUNCTION {
command
}

FUNCNAME() {
command
}

例子:
#!/bin/bash

function SHOWMENU {
#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 -lh ;;
m|M) free -m | grep “^Mem” ;;
s|S) free -m | grep “^Swap” ;;
*)
SHOWMENU
read -p "Your choice,again: " CHOICE ;;
esac
SHOWMENU
read -p "Your choice: " CHOICE
done

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

例子:
#!/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
}

ADDUSER
if [ $? -eq 0 ]; then
echo “add user finished.”
else
echo “Failuer.”
fi

接收参数的函数:
./a.sh m n
$1:m
$2:n

TWOINT 5 6
$1:5
$2:6

例子:
#!/bin/bash

TWOSUM() {
echo $[$1+$2]
}

SUM=`TWOSUM 5 6`
echo $SUM

执行过程:
/home/gaps>twosum.sh 5 6
11
/home/gaps>bash -x twosum.sh
++ TWOSUM 5 6
++ echo 11
+ SUM=11
+ echo 11
11

例子:ping测试IP地址
#!/bin/bash

PING() {
if ping -c 1 -W 1 $1 &> /dev/null; then
return 0
else
return 1
fi
}

for I in {200…206}; do
PING 192.168.0.$I
if [ $? -eq 0 ]; then
echo “192.168.0.$I is up.”
else
echo “192.168.0.$I is down.”
fi
done

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值