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 done
10
11
12 while [[ $1 = -* ]]; do #匹配-后帶任意值
13 case $1 in
14 -d) DEBUG=1 ;;
15 esac
16 shift
17 done
18 ACTION=$1
19 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 ; fi 17 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 ; do 25 case "$1" in 26 -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 optional 31 # argument is not found. 32 case "$2" in 33 "") 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 esac 39 done 40 echo "Remaining arguments:" 41 for arg do 42 echo '--> '"\`$arg'" ; 43 done?
?轉載于:https://www.cnblogs.com/lijinping/p/5909327.html
總結
- 上一篇: Linux Linux程序练习十二(se
- 下一篇: 关于Struts2的jsp页面的注释