在linux中,shell是一個(gè)命令行解釋器,“$$”的意思是當(dāng)前shell的PID,也就是腳本運(yùn)行的當(dāng)前進(jìn)程號(hào);shell的作用就是將輸入的命令加以解釋并傳給系統(tǒng),為用戶提供了向linux發(fā)送請(qǐng)求的程序。
本教程操作環(huán)境:linux7.3系統(tǒng)、Dell G3電腦。
linux的shell中$$是什么意思
Shell就是一個(gè)命令行解釋器,它的作用就是遵循一定的語(yǔ)法將輸入的命令加以解釋并傳給系統(tǒng)。它為用戶提供了一個(gè)向Linux發(fā)送請(qǐng)求以便運(yùn)行程序的接口系統(tǒng)級(jí)程序,用戶可以用Shell來(lái)啟動(dòng)、掛起、停止甚至是編寫一些程序。
$$ 當(dāng)前shell的PID(即腳本運(yùn)行的當(dāng)前進(jìn)程號(hào))
Shell本身是用戶使用Linux的橋梁。Shell既是一種命令語(yǔ)言,又是一種程序設(shè)計(jì)語(yǔ)言(就是你所說(shuō)的shell腳本)。作為命令語(yǔ)言,它互動(dòng)式地解釋和執(zhí)行用戶輸入的命令;作為程序設(shè)計(jì)語(yǔ)言,它定義了各種變量和參數(shù),并提供了許多在高階語(yǔ)言中才具有的控制結(jié)構(gòu),包括循環(huán)和分支。
它雖然不是 Linux系統(tǒng)內(nèi)核的一部分,但它調(diào)用了系統(tǒng)內(nèi)核的大部分功能來(lái)執(zhí)行程序、創(chuàng)建文檔并以并行的方式協(xié)調(diào)各個(gè)程序的運(yùn)行。
知識(shí)拓展:
$0 當(dāng)前腳本的執(zhí)行名字
$n 當(dāng)前腳本執(zhí)行命令的第n個(gè)參數(shù)值,n = 1..9
$* 當(dāng)前腳本執(zhí)行命令的所有參數(shù),此選項(xiàng)參數(shù)可超過(guò)9個(gè)
$# 當(dāng)前腳本執(zhí)行命令的輸入?yún)?shù)個(gè)數(shù),例如執(zhí)行 ./test.sh aa bb cc ,則在 test.sh 里 $# 為 3
$! 上一個(gè)執(zhí)行指令的PID(后臺(tái)運(yùn)行的最后一個(gè)進(jìn)程的進(jìn)程ID號(hào))
$- 顯示shell使用的當(dāng)前選項(xiàng),與set命令功能相同
$@ 跟$*類似,但是可以當(dāng)作數(shù)組用
$? 上一個(gè)執(zhí)行指令的返回值(顯示最后命令的退出狀態(tài),0表示沒(méi)有錯(cuò)誤,其他任何值表明有錯(cuò)誤),如下所示
# 結(jié)果輸出上一條命令 grep 命令的返回值 grep xxx a.txt echo $? # 判斷打開(kāi)目錄命令是否成功,不成功則輸出提醒信息并退出 dir_exe=../cron cd $dir_exe if [ $? -ne 0 ]; then echo "cannot change dir to $dir_exe" exit 1 fi