您好,登錄后才能下訂單哦!
大家都知道普通的bash命令后邊可以跟任意的參數,那我們自己編寫的腳本是否也支持傳遞參數呢?答案當然是肯定的
執行“vim test.sh”創建一個新的shell腳本。腳本test.sh的內容如下:
#!/bin/sh
name=$1
echo "the ${name} are great man!"
給新創建的test.sh的腳本賦可執行權限,命令為“chmod +x test.sh”
執行'./test.sh "xiao wang" '命令,可以看到自己編寫腳本的結果“the xiao wang are great man!”
"name=$1"中$1為系統提供的位置參數,$0代表程序的名稱(./test.sh),[$1 $2...]從1開始為傳遞的參數。linux系統除了提供位置參數還提供內置參數,所有內置參數如下:
$0 ----當前腳本文件名
$n ----傳遞給腳本或函數的參數,n是一個數字,表示第幾個參數,$1表示第一個參數,$2表示第二個參數 ...
$# ----傳遞給腳本或函數的參數個數
$* ----傳遞給腳本或函數的所有參數,當它被雙引號(" ")包含時,"$*" 會將所有的參數作為一個整體,以"$1 $2 ... $n"的形式輸出所有參數
$@ ----傳遞給腳本或函數的所有參數,當它被雙引號(" ")包含時,與$*稍有不同,"$@" 會將各個參數分開,以"$1" "$2" … "$n" 的形式輸出所有參數
$* 和$@不被雙引號(" ")包含時,都以"$1" "$2" … "$n" 的形式輸出所有參數
下面寫個小程序實踐一下$* 和$@
$? ----上一個命令的退出狀態,或函數的返回值,如果正常退出則返回0,反之為非0值
$$ ----當前shell進程pid,對于shell腳本,就是這些腳本所在的進程ID
$! ----上一個命令的pid
新建test.sh chmod +x test.sh 執行./test.sh "a" "b" "c" "d",觀察打印結果done
打印結果:免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。