shell程式設計 命令列引數

2022-10-09 04:36:09 字數 1150 閱讀 5768

$1 獲取第1個引數

$2 獲取第2個引數

$ 獲取第10個引數

./test.sh 2 3

# test.sh 指令碼內容

var1=$1 # 2

var2=$2 # 3

var3=$[ $var1 * $var2 ]

echo $var3 # 6

獲取超過第9個引數時要用花括號括起來,$, $

$0 獲取當前檔案的指令碼名稱包括路徑

./test.sh

filepath=$0

echo $filepath # ./test.sh

使用basename命令返回不包含指令碼的檔名

./test.sh

filename=$(basename $0)

echo $filename # test.sh

$# 讀取引數的個數

./test.sh 2 3

count=$#

echo $count # 2

$ 讀取最後乙個引數

./test.sh 2 3

echo $

$@ 或者 $* 可以獲取所有的引數

./test.sh 2 3 4

for val in $@

do echo $val

done

./test.sh 2 3

if [ -n "$2" ]

then

echo "$2"

fi

shift 預設每次將引數向左移動乙個位置,第2位變為第1位

./test.sh 2 3 4

while [ -n "$1" ]

do echo "$1"

shift

done

shift 2 每次將引數向左移動2個位置

shell指令碼程式設計 處理命令列引數

1 讀取引數 bash shell使用位置引數的特殊變數記錄命令列引數,0是程式名,1 9依次為輸入引數 如果指令碼需要多餘9個變數,需要將變數數字加花括號,如 命令列輸入的引數需要以空格分隔,當空格作為引數的一部分時可以使用引號分開 在指令碼中對命令列引數進行處理時需要對引數進行有效性判斷,如 1...

Shell的命令列引數

當你執行shell指令碼時,如 myshell.sh a b c d e f 其中,後部分的a b c d e f 是傳入shell指令碼myshell.sh的引數 在shell指令碼裡,我們可以通過這樣獲得傳入的引數 echo first arg is 1 echo tenth arg is 其中...

SHELL 命令列引數簡介

我們對於普通指令碼語言諸如perl python等,寫乙個指令碼程式,包裝命令列引數時,一般都是用getopt之類的 c語言也類似。那麼,對於乙個shell指令碼,它本身的命令引數是什麼樣呢?首先,shell指令碼程式設計和python等指令碼程式設計一樣可以使用引數 其次,shell引數分為位置引...