shell返回值用exit
函数返回值用return
运行函数 执行函数名即可(不带括号)
shell的位置参数($1$2$3$4$#$*$?$@)都可以是函数的参数。
此时父脚本的参数临时被函数参数所掩盖
$0特殊,它是“父脚本”的名称
函数简单示例:在一个文件中添加删除检查用户脚本
#!/bin/bash #Check url shell [ -f /etc/init.d/funcitions ] && . /etc/init.d/funcitions usage(){ echo “usage:$0 URL” exit 1 } RETVAL=0 CheckUrl(){ wget -T 10 --spider -t 2 &>/dev/null RETVAL=$? if [ $RETVAL -eq 0 ];then action "$1 url" /bin/true else action "$1 url" /bin/false fi return $RETVAL } main(){ if [ $# -ne 1 ];then usage fi CheckUrl $1 RETVAL=$? return $RETVAL } main "$*"
#!/bin/bash Path=/etc/user.conf if [ ! -f $Path ];then touch $Path fi chmod 644 $Path if [2 -ne $# ];then echo "usage:sh adduser {-add|-del|check}" exit 1 fi Age=$1 User=$2 if [ 1 -lt echo '$User' |grep -E "[^a-z,A-Z,0-9,_]" |wc -l ];then echo "The age format is error" exit 2 fi funCheckUser() { check=$(grep "$User" $Path |wc -l) if [ $check -eq 0 ];then return 0 else return 1 fi } funAddUser(){ funCheckUser if [ $? -eq 0 ];then echo "$User" >> $Path else echo "The user is having" exit 3 fi } funDelUser(){ funChckUser if [ $? -eq 0 ];then echo "no user" else sed -ri /^$User/d $Path exit 3 fi } funSearch(){ if [ $? -eq ) ];then echo "no user match" else echo "$User is having" fi } case $Age in -add) funAddUser ;; -del) funDelUser ;; -check) funCheck ;; *) echo "error formart" ;;
shell定义颜色
#!/bin/bash red_color='\E[1:31m' green_color='\E[1:32m' yellow_color='\E[1:33m' blue_color='\E[1:34m' pink_color='\E[1:35m' res='\E[0m' echo -e "$red_color hello $res"
闪烁为 '\E[31:5m'
浙公网安备 33010602011771号