该shell脚本有如下点:
- bash or dash
- case语句的写法
- 脚本help写法
- 参数是否为空的写法
- 算数运算的写法
#! /bin/bash case "$1" in-h|--help|?)echo "Usage: 1st arg:pin name, 2st arg:reset time"echo "1st arg pin name:lte-reset,zigbee-reset"echo "2st arg reset time in ms"exit 0 ;; esacif [ ! -n "$1" ]; thenecho "pls input 1st arg"exit fiif [ ! -n "$2" ]; thenecho "pls input 2st arg"exit fiecho 0 > /home/gpio/$1 time=$[ $2 * 1000 ] echo $time > /home/gpio/$1echo "you reset $1 with $2ms"
下面的脚本:
- 多条case分支
- 字符串比较
#! /bin/bashUSRPWM_DIR="/home/pwm"case "$1" in-h|--help|?)echo "Usage1:1st arg:disable, enable"echo "Usage2:1st arg:period in us, 2st arg duty in us"exit ;;enable|disable)if [ "$1" == "enable" ] ; thenecho "enable power charge"echo 1 > $USRPWM_DIR/power-charge/enableexitelseecho "disable power charge"echo 0 > $USRPWM_DIR/power-charge/enableexitfi ;; esacif [ ! -n "$1" ] ; thenecho "pls input 1st arg: period with us"exit fi if [ ! -n "$2" ] ; thenecho "pls input 2st arg: duty with us"exit fiarg1=$[ $1 * 1000 ] arg2=$[ $2 * 1000 ]echo $arg1 > $USRPWM_DIR/power-charge/period echo $arg2 > $USRPWM_DIR/power-charge/duty_cycle echo 1 > $USRPWM_DIR/power-charge/enable