亚洲熟女综合色一区二区三区,亚洲精品中文字幕无码蜜桃,亚洲va欧美va日韩va成人网,亚洲av无码国产一区二区三区,亚洲精品无码久久久久久久

shell第九講

1、特殊變量
我們之前給大家講過幾個特殊變量了,比如 $0 $1 這些位置變量,還有命令執(zhí)行狀態(tài)判斷符$?。這些在工作中都是比較常用的,初次之外,再給大家分享幾個工作中偶爾會用到的。
1.1、位置參數(shù)總數(shù)
這個主要是用來打印執(zhí)行的腳本參數(shù)的個數(shù),比如:
bash [root@localhost ~]# cat a.sh!/bin/bashecho $1 $2 $3 $4 $5 echo "本次腳本傳入的參數(shù)個數(shù)為: $#" [root@localhost ~]# chmod +x a.sh [root@localhost ~]# ./a.sh 11 22 33 44 55 11 22 33 44 55 本次腳本傳入的參數(shù)個數(shù)為: 5
我們一共傳入了5個參數(shù),那么此時 $# 返回給我們的參數(shù)個數(shù)也是5。
1.2、$@與$*
兩者使用上基本是一樣的效果,都是表示引用傳遞給腳本的所有參數(shù)(所有的位置參數(shù)被看做是一個字符串)。比如:
bash [root@localhost ~]# cat a.sh!/bin/bashecho $1 $2 $3 $4 $5 echo "本次腳本傳入的參數(shù): $*" echo "本次腳本傳入的參數(shù): $@" [root@localhost ~]# ./a.sh 11 22 33 44 55 11 22 33 44 55 本次腳本傳入的參數(shù): 11 22 33 44 55 本次腳本傳入的參數(shù): 11 22 33 44 55
可以看出來兩個特殊變量效果是一樣的,他會把我們的所有位置參數(shù)被看成是一個字符串然后打印出來。
然而在實際工作中,我們往往使用for循環(huán)來遍歷每一個位置參數(shù),那么有些人習(xí)慣加上給特殊變量加上雙引號,那么此時在使用上就會有些區(qū)別:
bash [root@localhost ~]# cat a.sh!/bin/bashecho "這個是\$的使用方法" for i in "$"; do echo ${i} done echo "下面是\$@的使用方法" for i in "$@"; do echo ${i} done [root@localhost ~]# ./a.sh 11 22 33 這個是$*的使用方法 11 22 33 下面是$@的使用方法 11 22 33 [root@localhost ~]#
看到效果了嗎?
可以看到當(dāng)兩個特殊變量加了雙引號后,此時$*把參數(shù)作為一個字符串整體(單字符串)返回,而$@把每個參數(shù)作為一個字符串返回。
上面就是兩者的使用區(qū)別,大家在使用的過程中多加注意。
1.3、$$使用
這個我們在之前的知識中都給大家分享過了,他表示打印當(dāng)前進程的PID號,
我們當(dāng)前都是在shell交互界面來執(zhí)行命令的,這個shell交互我們也稱之為在bash進程上,那么我們查看一下當(dāng)前bash進程的PID號,比如:
bash [root@localhost ~]# ps aux | grep -e pts/0 | grep -v grep | grep bash root 1505 0.0 0.0 115580 2236 pts/0 Ss Mar23 0:00 -bash
從上面第二列我們看到的是bash進程的PID號是1505,現(xiàn)在我們使用$$來打印看看
bash [root@localhost ~]# echo $$ 1505
此時$$就可以打印出來當(dāng)前進程的PID號,可以看到也是1505。
1.4、$!使用
$!表示打印出來上一條命令運行在后臺進程的PID號。比如:
bash [root@localhost ~]# sleep 10 & [2] 3730 [root@localhost ~]# echo $! 3730
我們使用sleep命令發(fā)起一個睡眠10秒的進程并放在后臺運行,此時使用$!就可以看到我們上一條命令的后臺進程PID號是3730。(當(dāng)然,在命令結(jié)尾處放一個&符號,表示把命令放在當(dāng)前終端的后臺運行,同時也會打印出來此后臺進程的PID號)

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國內(nèi)好評如潮的Linux云計算運維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開發(fā)專業(yè)人才培訓(xùn)機構(gòu)!