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