首页 > 代码库 > shell 小脚本
shell 小脚本
1 #! /bin/bash 2 3 j=0 4 for i in "$@" 5 do 6 j=$(( $j + 1)) #累加计算 7 echo -e "$j \c" 8 echo $i 9 done10 11 12 while [[ $1 = -* ]]; do #匹配-后带任意值13 case $1 in14 -d) DEBUG=1 ;;15 esac16 shift17 done18 ACTION=$119 shift
$@ : 参数本身的列表,不包括命令本身
$* : 和$@相同,但"$*" 和 "$@"(加引号)并不同,"$*"将所有的参数解释成一个字符串,而"$@"是一个参数数组
摘抄一个: https://blog.linuxeye.com/389.html
1 !/bin/bash 2 3 #-o表示短选项,两个冒号表示该选项有一个可选参数,可选参数必须紧贴选项 4 #如-carg 而不能是-c arg 5 #--long表示长选项 6 #"$@"在上面解释过 7 # -n:出错时的信息 8 # -- :举一个例子比较好理解: 9 #我们要创建一个名字为 "-f"的目录你会怎么办?10 # mkdir -f #不成功,因为-f会被mkdir当作选项来解析,这时就可以使用11 # mkdir -- -f 这样-f就不会被作为选项。12 13 TEMP=`getopt -o ab:c:: --long a-long,b-long:,c-long:: 14 -n ‘example.bash‘ -- "$@"`15 16 if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi17 18 # Note the quotes around `$TEMP‘: they are essential!19 #set 会重新排列参数的顺序,也就是改变$1,$2...$n的值,这些值在getopt中重新排列过了20 eval set -- "$TEMP"21 22 #经过getopt的处理,下面处理具体选项。23 24 while true ; do25 case "$1" in26 -a|--a-long) echo "Option a" ; shift ;;27 -b|--b-long) echo "Option b, argument \`$2‘" ; shift 2 ;;28 -c|--c-long)29 # c has an optional argument. As we are in quoted mode,30 # an empty parameter will be generated if its optional31 # argument is not found.32 case "$2" in33 "") echo "Option c, no argument"; shift 2 ;;34 *) echo "Option c, argument \`$2‘" ; shift 2 ;;35 esac ;;36 --) shift ; break ;;37 *) echo "Internal error!" ; exit 1 ;;38 esac39 done40 echo "Remaining arguments:"41 for arg do42 echo ‘--> ‘"\`$arg‘" ;43 done
shell 小脚本
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。