shell程式設計-引數傳遞
阿新 • • 發佈:2018-11-11
一、傳參介紹
(1)C語言中可以通過main函式的argc和argv給程式傳參
(2)shell程式本身也可以在呼叫時傳參給他。在shell程式內部使用傳參也是使用的一些特定符號來表示的,包括:
$#表示呼叫該shell時傳參的個數。($#計數時只考慮真正的引數個數)
$0、$1、$2·····則依次表示傳參的各個引數。如果引數超過9個,那麼就只能通過${}來獲取了, 例如獲取第10個引數,那麼可以寫為${10}。
二、程式設計例項
例項1:
#!/bin/bash #testinput.sh echo "file name: $0" echo "base file name: $(basename $0)" echo "param1: $1" echo "param2: ${2}"
執行上面的的shell
./testinput.sh 12 34
輸出結果;
file name: ./testinput.sh
base file name: testinput.sh
param1: 12
param2: 34
成功的得到檔名和命令列輸入的引數(命令列引數以空格分隔,如果引數包含了空格,那麼久必須新增引號了)
$0預設會獲取到當前shell檔案的名稱,但是,它也包含(./),如果你以完整路徑執行,那麼這還會包含目錄名。因此,上面通過basename命令來獲取單純的檔名$(basename $0)。
例項2:獲取使用者的所有引數