1. 程式人生 > >shell指令碼--用for迴圈遍歷引數

shell指令碼--用for迴圈遍歷引數

1.當一個指令碼需要傳入的引數較多時,可以使用for迴圈進行引數遍歷

示例:

#!/bin/bash

number=65              #定義一個退出值
index=1                    #定義一個計數器
if [ -z "$1" ];then                           #對使用者輸入的引數做判斷,如果未輸入引數則返回指令碼的用法並退出,退出值65
   echo "Usage:$0 + canshu"
   exit $number
fi
echo "listing args with \$*:"                 #在螢幕輸入,在$*中遍歷引數
for arg in $*                                          
do
   echo "arg: $index = $arg"                 
   let index+=1
done
echo
index=1                                              #將計數器重新設定為1
echo "listing args with \"\
[email protected]
\":"       #在"[email protected]"中遍歷引數
for arg in "[email protected]"
do
   echo "arg: $index = $arg"
   let index+=1

done


小技巧1:在"$*"和$*中遍歷引數的區別

示例:

#!/bin/bash
number=11
if [ $# -eq 0 ];then
   echo "Usage: $0 + canshu"
   exit $number
fi
for i in $*               #在$*中遍歷引數,此時每個引數都是獨立的,會遍歷$#次
do
   echo $i
done
echo
for i in "$*"            #在"$*"中遍歷引數,此時"$*"被擴充套件為包含所有位置引數的單個字串,只遍歷一次
do
   echo $i

done


小技巧2:在"[email protected]"和[email protected]中遍歷引數沒有區別

示例:

#!/bin/bash
number=11
if [ $# -eq 0 ];then
   echo "Usage: $0 + canshu"
   exit $number
fi
for i in [email protected]
do
   echo $i
done
echo
for i in "[email protected]"
do
   echo $i

done