Linux case 及 函數位置參數

來源:互聯網
上載者:User

 

 

位置參數

$0, $1, $2,等等...
位置參數,從命令列傳遞給指令碼,或者是傳遞給函數.或者賦職給一個變數.
(具體見Example 4-5 和Example 11-15)
$#
命令列或者是位置參數的個數.(見Example 33-2)
$*
所有的位置參數,被作為一個單詞.
注意:"$*"必須被""引用.
$@
與$*同義,但是每個參數都是一個獨立的""引用字串,這就意味著參數被完整地傳遞,
並沒有被解釋和擴充.這也意味著,每個參數列表中的每個參數都被當成一個獨立的
單詞.
注意:"$@"必須被引用.

 

 

 

具體見代碼:

#!/bin/bash
# arglist.sh

E_BADARGS=65

if [ ! -n "$1" ]
then
  echo "Usage: `basename $0` argument1 argument2 etc."
  exit $E_BADARGS
fi

echo

index=1

echo "Listing args with \"\$*\":"
for arg in "$*"
do
  echo "Arg #$index = $arg"
  let "index+=1"
done
echo "Entire arg list seen as single word."

echo

index=1

echo "Listing args with \"\$@\":"
for arg in "$@"
do
  echo "Arg #$index = $arg"
  let "index+=1"
done
echo "Arg list seen as separate words."

echo

index=1

echo "Listing args with \$* (unquoted):"
for arg in $*
do
  echo "Arg #$index = $arg"
  let "index+=1"
done
echo "Arg list seen as separate words."

exit 0

 

#!/bin/bash
echo 'begin work '
binHome=`dirname $0`
echo $binHome
cd $binHome
binHome=`pwd`
echo $binHome

workHome=${binHome}/..
echo $workHome
b=${workHome}/common/date.sh
echo $b
source ${workHome}/common/date.sh
index=1
for arg in $*
do
  if [[ "x$arg" == "x" ]]; then
    exit 1
  else
    case $index in
        1)
            loadDate=$arg
            ;;
        2)
            days=$arg
            ;;
        *)
            execFile=$arg
            execDate=${loadDate}
            for ((i=0;i<days;i=i+1))
            do
              bash ${execFile} ${execDate}
              execDate=`dashDateAdd ${execDate} '1'` 
            done
            ;;
    esac
    let "index+=1"
  fi
done
exit 0

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.