function:功能

结构化编程

定义一个函数:先定义后调用  
function FUNCNAME {
 command
}

FUNCNAME() {
 command
}
自定义执行状态返回值:
return #

local VAR 定义变量只在函数本身有效

函数也可以接受参数,即可以向函数传递参数

${filename#*word}去掉字符串中以word为节点第一个字符串
${filename##*word}
${filename%word*}去掉字符串中以word为节点第一个字符串
${filename%%word*}

例:下方是添加命令的一个脚本
#!/bin/bash

HANSHU() {
        if which $1 &> /dev/null; then
                COMMAND=`which $1 | grep -o "/.*bin.*"`
  else
                return 11
        fi

        CMDPATH=${COMMAND%/*}
        [ -d /mnt/sysroot/$CMDPATH ] || mkdir -p /mnt/sysroot/$CMDPATH
        [ ! -f /mnt/sysroot/$COMMAND ] $$ cp $COMMAND /mnt/sysroot/$CMDPATH || return 12
  A=`ldd $COMMAND | grep '/lib' | cut -d'(' -f1 | cut -d' ' -f3`
  LINE=`$A | wc -l`
  for n in $LINE; do
  B=`head $n $A | tail -1`
  CMDPATH1=${B%/*}
  [ -d /mnt/sysroot/$CMDPATH1 ] || mkdir -p /mnt/sysroot/$CMDPATH1
~       [ ! -f /mnt/sysroot/$B ] && cp $B /mnt/sysroot/$CMDPATH1
  let $n++
  done
}
while :; do
        read -p "a command[q to quit]" CMD
        if [  "$CMD" != 'q' ]; then
                HANSHU $CMD
                RETVAL=$?
                [ $RETVAL -eq 11 ] && echo "no $CMD"
                [ $RETVAL -eq 12 ] && echo "$COMMAND had"
        else
                exit 0
        fi
done