題主你好,
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的岳陽網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
前提: 我們知道每個(gè)進(jìn)程運(yùn)行后,系統(tǒng)都會(huì)分配給其一個(gè)id號,這個(gè)id號和進(jìn)程是關(guān)聯(lián)的,我們可以通過操作該id來實(shí)現(xiàn)操作對應(yīng)進(jìn)程的目的,如通過id殺死進(jìn)程等.
$!很多人解釋為后臺(tái)運(yùn)行的最后一個(gè)進(jìn)程的id號(我覺得解釋為最近一次后臺(tái)運(yùn)行的id號更容易理解). 舉個(gè)例子說一下吧,這樣更直觀一點(diǎn).
我們先準(zhǔn)備一個(gè)簡單的腳本1.sh, 里面內(nèi)容很簡單,就是睡眠100秒:
下面我們在后臺(tái)運(yùn)行這個(gè)腳本,看一下$!的輸出結(jié)果:
從上圖可以看出, 腳本運(yùn)行后,系統(tǒng)分配給它的進(jìn)程id是54821, 后面我們連續(xù)輸出三次$!,得到的結(jié)果是一樣的,都是54821.? 因?yàn)?.sh這個(gè)腳本就是我們最近一次后臺(tái)運(yùn)行的腳本,所以此時(shí)無論輸出多少次$!結(jié)果都是一樣的.
-----
接下來, 我們再運(yùn)行一個(gè)內(nèi)容同1.sh相同的2.sh:
可以看到, $!的輸出結(jié)果變?yōu)榱?4860,不再是上面的54821. 因?yàn)榇藭r(shí)2.sh是我們最近一次后臺(tái)運(yùn)行的腳本,因此,$!結(jié)果變?yōu)榱?4860.
=====
希望可以幫到題主, 歡迎追問.
$ 在linux里是用來給變量命令的,例如$JAVA_HOME,是指JAVA_HOME的環(huán)境變量。
echo $JAVA_HOME 可以在linux終端輸出jdk的home目錄。
在Shell 腳本中向腳本傳遞參數(shù)也會(huì)用到$,例如腳本內(nèi)獲取參數(shù)的格式為:$n,n?代表一個(gè)數(shù)字,1 為執(zhí)行腳本的第一個(gè)參數(shù),2 為執(zhí)行腳本的第二個(gè)參數(shù),以此類推。
實(shí)例-向腳本傳遞三個(gè)參數(shù),并分別輸出,其中?$0?為執(zhí)行的文件名:
#!/bin/bash
Shell 傳遞參數(shù)實(shí)例!";
echo "執(zhí)行的文件名:$0";
echo "第一個(gè)參數(shù)為:$1";
echo "第二個(gè)參數(shù)為:$2";
echo "第三個(gè)參數(shù)為:$3";
擴(kuò)展資料
另外$還可以配合幾個(gè)特殊字符用來處理參數(shù):
1、$#:傳遞到腳本的參數(shù)個(gè)數(shù)。 ??
2、$* :以一個(gè)單字符串顯示所有向腳本傳遞的參數(shù)。
如"$*"用「"」括起來的情況、以"$1 $2 … $n"的形式輸出所有參數(shù)。 ??
3、$$:腳本運(yùn)行的當(dāng)前進(jìn)程ID號 。??
4、$!:后臺(tái)運(yùn)行的最后一個(gè)進(jìn)程的ID號。 ??
5、$@:與$*相同,但是使用時(shí)加引號,并在引號中返回每個(gè)參數(shù)。
如"$@"用「"」括起來的情況、以"$1" "$2" … "$n" 的形式輸出所有參數(shù)。 ??
6、$-:顯示Shell使用的當(dāng)前選項(xiàng),與set命令功能相同。 ??
7、$? :顯示最后命令的退出狀態(tài)。0表示沒有錯(cuò)誤,其他任何值表明有錯(cuò)誤。 ?
命令提示符
“$在linux里是命令提示符的意思。 對于Linux系統(tǒng)來說,無論是中央處理器、內(nèi)存、磁盤驅(qū)動(dòng)器、鍵盤、鼠標(biāo),還是用戶等都是文件,Linux系統(tǒng)管理的命令是正常運(yùn)行的核心,與之前的DOS命令類似。linux命令在系統(tǒng)中有兩種類型:內(nèi)置Shell(外殼)命令和Linux命令
linux中的$即“命令提示符”就是你可以一在后面輸入命令的,命令提示符前面可能提示當(dāng)前用戶的一些信息,在linux下會(huì)提示用戶當(dāng)前目錄以及當(dāng)前用戶。
$* 是以一個(gè)單字符串顯示所有向腳本傳遞的參數(shù),與位置變量不同,參數(shù)可超過9個(gè)。關(guān)于Linux命令的詳細(xì)介紹可查詢“Linux命令大全”。
美元符加字符串是引用變量值,而美元符加數(shù)字表示命令行參數(shù)。
比如:
bash$ ./hello.sh build test腳本中$0的值就是。/hello.sh,$1的值是build,$2的值是test。
bash$ list.sh -sh --debug /home/user。腳本中$0的值就是list.sh,$1的值是-sh,$2的值是--debug,$3的值是/home/user。
$0 這個(gè)程式的執(zhí)行名字。
$n 這個(gè)程式的第n個(gè)參數(shù)值,n=1..9。
$* 這個(gè)程式的所有參數(shù),此選項(xiàng)參數(shù)可超過9個(gè)。
$# 這個(gè)程式的參數(shù)個(gè)數(shù)。
$$ 這個(gè)程式的PID(腳本運(yùn)行的當(dāng)前進(jìn)程ID號)。
$! 執(zhí)行上一個(gè)背景指令的PID(后臺(tái)運(yùn)行的最后一個(gè)進(jìn)程的進(jìn)程ID號)。
$? 執(zhí)行上一個(gè)指令的返回值 (顯示最后命令的退出狀態(tài)。0表示沒有錯(cuò)誤,其他任何值表明有錯(cuò)誤)。
$- 顯示shell使用的當(dāng)前選項(xiàng),與set命令功能相同。
$@ 跟$*類似,但是可以當(dāng)作數(shù)組用。
當(dāng)前題目:linux中¥命令 linux常用命令
本文網(wǎng)址:http://m.rwnh.cn/article16/doopsdg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、響應(yīng)式網(wǎng)站、網(wǎng)站營銷、網(wǎng)站維護(hù)、網(wǎng)站設(shè)計(jì)、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)