AIX作業系統shell的參數

來源:互聯網
上載者:User
command options files一些與傳遞給shell的參數相關的變數:$# 命令列參數的個數$? 調用命令的傳回值$$ 當前進程的進程號$! 最後一個後台命令的進程號$0 命令列的第一個參數,也就是命令名$n 命令列的第n個參數,如果要取超過9個參數${n}$* 所有的命令列參數,等於("$1 $2...")"$@" 所有的命令列參數,等於("$1" "$2"...)$_ 前一個命令的最後一個命令列參數一般有兩種主要的方法來分析傳遞給shell script的選項(option)。第一種方法是利用上述的shell variables和shift等命令,配合case命令來直接分析,在參數的個數比較少的情況下,這種方法比較常用。但如果參數數量比較多,就需要使用 getopts命令。

命令格式:

getopts option-string variable

getops解析命令列傳遞的參數的處理過程為:

1.getopts檢查所有的命令列參數,尋找以字元"-"開始的參數。

2.當找到以字元"-"開始的參數,將 "-"之後的字串和option-string比較。

3.如果找到符合的匹配,則指定的變數被設定,否則,此變數被設成?字元。

4.重複1到3,直到所有的選項被處理。

5.當分析結束,getopts返回一個非0傳回值,這常用做迴圈的判斷條件。另外,當getopts結束時,它還將變數OPTIND設為最後一個參數的下標。

【注意】當選項後面需要跟一個附加的參數時(如-i intputfile),在option-string中需要在相應的option中加冒號(如i: )。在這種情況下,當解析到此選項時,附加的參數會被賦值給OPTARG變數。

舉例:

下面的shell清單將能夠分析:

-i 指定輸入的檔案名稱

-o 指定輸出的檔案名稱

-v 指定使用詳細模式

shell script清單:

#!/usr/bin/ksh

USAGE="Usage: $0 '[-v] [-i] [filename] [-o] [filename]'"

VERBOSE=false

while getopts o:f:v OPTION ; do

case "$OPTION" in

o) OUTFILE="$OPTARG" ;;

i) INFILE="$OPTARG" ;;

v) VERBOSE=true ;;

\?) echo "$USAGE" ;

exit 1

;;

esac

done

echo Output file is $OUTFILE

echo Input file is $INFILE

echo In VERBOSE Mode:$VERBOSE



相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

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

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