位置變量:
位置變量實際是屬于系統預定義變量的一種,不能修改變量名,同時作用也是固定的,也不能新增的變量,只能修改變量的值。
常用的位置參數變量
$0代表命令本身,$1-$9代表第一到第九個參數,十以上的參數需要用大括號括起來,比如${11}.
該變量的用法:
該腳本表示輸出位置0,1,2,3的值,賦予該腳本x權限,并執行.
腳本執行后只輸出了變量0的值,也就是命令本身./test,而變量1,2,3是空的,所以沒有任何輸出。
那么如果我們執行這個腳本的時候添加一下參數再看看,如下:
[root@localhost bin]# ./test 1 2 3
會輸出什么結果呢?如圖:
而這分別輸出了我們添加的參數值,什么原理呢?
這種就是位置參數變量的意義,也就是說我們只讓他輸出 變量0,變量1,變量2,變量3的值,而只有變量0代表命令本身而輸出了,而其他三個是空變量沒有輸出,所以我們在執行腳本的時候就在命令后面分別跟上三個參數,然后分別由變量1,變量2,變量3來接收,然后執行過程當中就分別輸入1 2 3也就是位置變量的值,即使,你在第四個位置變量上也寫上參數,但是由于腳本里只能接收3個值,最后輸入的也仍然是前3個的值。
那么位置變量具體有什么作用呢?比如我們現在要執行一個簡單的加和計算,11+12的值,而這時,我們就可以使用位置變量了,將11和12由位置變量傳遞給我們的腳本做加和。如圖:
該腳本表示,計算變量1和變量2的參數之和,賦予腳本x權限后,執行看看結果怎樣:
我們可以看到,腳本計算了變量1和變量2的加和并輸入。
在我們寫腳本時,經常需要由腳本將一些參數傳遞給腳本執行并輸入,而位置變量就可以起到傳遞參數的作用。
============================================================================================
$*:表示所有參數,而這些參數全部被看做一個整體的字符串
$@:表示所有參數,和$*不同的是,這些參數被每一個都是獨立的
$#:表示所有參數的個數
接下來我們用實例分別講解這三者的區別:
腳本內容如圖所示:
輸出結果:可以看到$#輸出了變量的總數,而$*和$@則輸出了所有的參數.
$*:所有的位置參數,被視作為一個單詞。
注意:$*必須被""引用。
$@:同樣是引用所有的參數,但和$*的區別是,每個參數都被看作一個獨立的單詞;
注意:$@必須被""所引用。
原創文章,作者:因為有你,如若轉載,請注明出處:http://www.www58058.com/36488