函数function~
2016-06-20 23:07
253 查看
函数:功能,function
代码重用:
库:so
定义一个函数的方法有2种
第一种:
function FUNCNAME{
command
}
第二种:
FUNCNAME () {
command
}
写一个脚本“输入d显示硬盘使用信息,输入m显示内存使用信息,输入s显示swap使用信息,输入q则退出”
#!/bin/bash
#
cat << EOF
d|D) show diskusages
m|M) show memoryusages
s|S) show swapusages
q|Q) quit
EOF
read -p "Yourchoice:" 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"
;;
*)
cat << EOF
d|D) show diskusages
m|M) show memoryusages
s|S) show swapusages
q|Q) quit
EOF
read -p "Yourchoice:" CHOICE
;;
esac
cat << EOF
d|D) show diskusages
m|M) show memoryusages
s|S) show swapusages
q|Q) quit
EOF
read -p "Yourchoice:" CHOICE
done把cat做成函数,后调用
#!/bin/bash
#
ABC () {
cat << EOF
d|D) show diskusages
m|M) show memoryusages
s|S) show swapusages
q|Q) quit
EOF
}
ABC
read -p "Yourchoice:" 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"
;;
*)
ABC
read -p "Yourchoice:" CHOICE
;;
esac
ABC
read -p "Yourchoice:" CHOICE
donereturn # 定义执行状态返回值,函数不执行return后的语句。
#:0-255
如果用户调用函数如果用户admin存在则返回1,如果用户不存在则创建用户,并设置密码,返回值0,
如果返回0 则显示用户添加成功,如果返回1则显示用户已存在
#!/bin/bash
#
function ABC {
USERNAME='admin'
if ! id -u $USERNAME &>/dev/null;then
useradd $USERNAME
echo "$USERNAME" |passwd --stdin&> /dev/null
return 0
else
return 1
fi
}
ABC
if [ $? -eq 0];then
echo "add user finished"
else
echo "user exist"
fi接受参数的函数:
FUNCTION a b
$1 : a
$2 : b
1到10任意2个相邻整数相加
#!/bin/bash
#
function QWE {
echo $[$1+$2]
}
for I in {1..10};do
let J=$I+1
echo "$I pluse$J is `QWE $I $J`"
done修改上面的脚本,让脚本可以连续创建10个用户
#!/bin/bash
#
function ABC {
USERNAME=$1
if ! id -u $USERNAME &>/dev/null;then
useradd $USERNAME
echo "$USERNAME" |passwd --stdin&> /dev/null
return 0
else
return 1
fi
}
for I in {1..10};do
ABC user$I
if [ $? -eq 0];then
echo "add user finished"
else
echo "user exist"
fi
done练习:写一个脚本,判定192.168.0.200-192.168.0.254之间的主机哪些在线。要求:
1. 使用函数来实现一台主机的判定过程:
2. 在主程序中来调用此函数判定指定范围内的所有主机的在线情况。
#!/bin/bash#function PING {if ping -c 1 -w 1 192.168.0.$I &> /dev/null;then return 0else return 1fi}for I in {200..254}; doPING $Iif [ $? -eq 0 ];thenecho "192.168.0.$I is up"elseecho "192.168.0.$I is down"fidone写一个脚本:使用函数完成 1 . 函数能够接受一个参数,参数为用户名:判断一个用户是否存在如果存在,就返回此用户的shell和UID并返回正常状态值如果不存在,就说此用户不存在;并返回错误状态值;
2.在程序中调用函数:
扩展1:在主主程序中,让用户自己输入用户名,传递给函数来进行判断;
扩展2:在主程序中,输入用户名判断后不退出脚本,而是提示用户继续输入下一个用户名:如果用户输入的用户不存在,请用户从新输入;但如果用户输入的是q或者Q就退出;
#!/bin/bash
#
function IDUSER {
if id -u $1&>/dev/null ;then
echo " $1 shell is :`cat /etc/passwd|grep "^$1\b" |awk -F : '{print $7}'`"
echo " $1 UID is: `id -u $1`"
return 0
else
echo "user not exist."
return 1
fi
}
read -p"username:" USERNAME
until [ $? == 'q'-o $? == 'Q' ] ; do
IDUSER $USERNAME
if [ $? -eq 0];then
read -p"pleasw input again:" USERNAME
else
read -p "no$USERNAME,please input again::" USERNAME
fi
done
本文出自 “linux运维” 博客,谢绝转载!
代码重用:
库:so
定义一个函数的方法有2种
第一种:
function FUNCNAME{
command
}
第二种:
FUNCNAME () {
command
}
写一个脚本“输入d显示硬盘使用信息,输入m显示内存使用信息,输入s显示swap使用信息,输入q则退出”
#!/bin/bash
#
cat << EOF
d|D) show diskusages
m|M) show memoryusages
s|S) show swapusages
q|Q) quit
EOF
read -p "Yourchoice:" 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"
;;
*)
cat << EOF
d|D) show diskusages
m|M) show memoryusages
s|S) show swapusages
q|Q) quit
EOF
read -p "Yourchoice:" CHOICE
;;
esac
cat << EOF
d|D) show diskusages
m|M) show memoryusages
s|S) show swapusages
q|Q) quit
EOF
read -p "Yourchoice:" CHOICE
done把cat做成函数,后调用
#!/bin/bash
#
ABC () {
cat << EOF
d|D) show diskusages
m|M) show memoryusages
s|S) show swapusages
q|Q) quit
EOF
}
ABC
read -p "Yourchoice:" 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"
;;
*)
ABC
read -p "Yourchoice:" CHOICE
;;
esac
ABC
read -p "Yourchoice:" CHOICE
donereturn # 定义执行状态返回值,函数不执行return后的语句。
#:0-255
如果用户调用函数如果用户admin存在则返回1,如果用户不存在则创建用户,并设置密码,返回值0,
如果返回0 则显示用户添加成功,如果返回1则显示用户已存在
#!/bin/bash
#
function ABC {
USERNAME='admin'
if ! id -u $USERNAME &>/dev/null;then
useradd $USERNAME
echo "$USERNAME" |passwd --stdin&> /dev/null
return 0
else
return 1
fi
}
ABC
if [ $? -eq 0];then
echo "add user finished"
else
echo "user exist"
fi接受参数的函数:
FUNCTION a b
$1 : a
$2 : b
1到10任意2个相邻整数相加
#!/bin/bash
#
function QWE {
echo $[$1+$2]
}
for I in {1..10};do
let J=$I+1
echo "$I pluse$J is `QWE $I $J`"
done修改上面的脚本,让脚本可以连续创建10个用户
#!/bin/bash
#
function ABC {
USERNAME=$1
if ! id -u $USERNAME &>/dev/null;then
useradd $USERNAME
echo "$USERNAME" |passwd --stdin&> /dev/null
return 0
else
return 1
fi
}
for I in {1..10};do
ABC user$I
if [ $? -eq 0];then
echo "add user finished"
else
echo "user exist"
fi
done练习:写一个脚本,判定192.168.0.200-192.168.0.254之间的主机哪些在线。要求:
1. 使用函数来实现一台主机的判定过程:
2. 在主程序中来调用此函数判定指定范围内的所有主机的在线情况。
#!/bin/bash#function PING {if ping -c 1 -w 1 192.168.0.$I &> /dev/null;then return 0else return 1fi}for I in {200..254}; doPING $Iif [ $? -eq 0 ];thenecho "192.168.0.$I is up"elseecho "192.168.0.$I is down"fidone写一个脚本:使用函数完成 1 . 函数能够接受一个参数,参数为用户名:判断一个用户是否存在如果存在,就返回此用户的shell和UID并返回正常状态值如果不存在,就说此用户不存在;并返回错误状态值;
2.在程序中调用函数:
扩展1:在主主程序中,让用户自己输入用户名,传递给函数来进行判断;
扩展2:在主程序中,输入用户名判断后不退出脚本,而是提示用户继续输入下一个用户名:如果用户输入的用户不存在,请用户从新输入;但如果用户输入的是q或者Q就退出;
#!/bin/bash
#
function IDUSER {
if id -u $1&>/dev/null ;then
echo " $1 shell is :`cat /etc/passwd|grep "^$1\b" |awk -F : '{print $7}'`"
echo " $1 UID is: `id -u $1`"
return 0
else
echo "user not exist."
return 1
fi
}
read -p"username:" USERNAME
until [ $? == 'q'-o $? == 'Q' ] ; do
IDUSER $USERNAME
if [ $? -eq 0];then
read -p"pleasw input again:" USERNAME
else
read -p "no$USERNAME,please input again::" USERNAME
fi
done
本文出自 “linux运维” 博客,谢绝转载!
相关文章推荐
- 用户管理
- 2016第26周一
- 函数栈帧(用汇编来剖析)
- c语言学习笔记32
- muduo:Singleton类,单例模式
- 六轴传感器MPU6050
- 文件属性和管理
- solr5.5.0服务启动与停止
- JSON
- Wine虚拟技术及其使用
- RAM,ROM和Flash memory等存储器的比较
- android UI TextView setText显示服务器返回数据
- bzoj2054 疯狂的馒头
- HTML5多媒体audio和video(一)
- JSON clone 实现
- [BZOJ4537] [HNOI/AHOI2016] 最小公倍数 - 分块 - 并查集
- BZOJ_1614_ [Usaco2007_Jan]_Telephone_Lines_架设电话线_(二分+最短路_Dijkstra/Spfa)
- MySQL查询数据表的Auto_Increment(自增id)
- Scroller的使用,让View随心所欲的移动
- HTML表单标签