shell函数

Posted on 2017-05-17 18:08  tdtdttdd  阅读(246)  评论(0)    收藏  举报

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 "$*"
View Code

 检测web页面脚本,函数传参联系

#!/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"
      ;;
View Code

 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"
View Code

 闪烁为   '\E[31:5m'

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3