shell编程中函数的应用
2015-08-11 16:32
489 查看
函数: 代码复用
库: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
4000
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
库: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
4000
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
相关文章推荐
- bashrc与profile的区别
- ShellSort
- SHELL NR与FNR区别
- Shell Copy线上DB数据到Beta库脚本
- 使用Windows PowerShell配置Hyper-V虚拟机自动重启
- shell参数中空格
- 新秀操作和维护注意事项:Windows关于使用Xshell管理你的云主机
- shell编程
- 修改shell为zsh
- Linux中shell变量说明
- shell脚本之条件判断
- 检测CPU利用率的Shell脚本
- linux 在bash 中的 second SECOND SECONDS
- sed命令在指定位置插入字符
- bash脚本之一:变量
- 常用shell脚本片段
- 【Powershell】【Hash】hash表的使用技巧
- 【Powershell】【Hash】Hash表的基本操作
- 【Powershell】【AD】AD属性的修改
- YXBBS 2.3论坛系统后台拿shell 转自红黑联盟