1. 程式人生 > >shell程式設計-引數傳遞

shell程式設計-引數傳遞

一、傳參介紹

(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:獲取使用者的所有引數

見以下部落格:

https://www.cnblogs.com/dongying/p/6398570.html