2021-09-15Linux中的$符號(hào)的三種常見(jiàn)用法

本文總結(jié)了Linux中的$符號(hào)的各種用法

用法一:

顯示腳本參數(shù)(0寥枝、?井仰、*恶守、@第献、#、$$兔港、!)(本質(zhì)上屬于變量替換)

0:就是該bash文件名,個(gè)位數(shù)的庸毫,可直接使用數(shù)字,但兩位數(shù)以上衫樊,則必須使用 {} 符號(hào)來(lái)括住飒赃,如{10}.

$?:是上一指令的返回值,成功是0科侈,不成功是1载佳。一般來(lái)說(shuō),UNIX(linux) 系統(tǒng)的進(jìn)程以執(zhí)行系統(tǒng)調(diào)用exit() 來(lái)結(jié)束的臀栈。這個(gè)回傳值就是status值蔫慧。回傳給父進(jìn)程权薯,用來(lái)檢查子進(jìn)程的執(zhí)行狀態(tài)藕漱。一般指令程序倘若執(zhí)行成功,其回傳值為 0崭闲;失敗為 1。

$*:所有腳本參數(shù)的內(nèi)容:就是調(diào)用調(diào)用本bash shell的參數(shù)威蕉。

@:基本上與上面相同刁俭。只不過(guò)是“*”返回的是一個(gè)字符串,字符串中存在多外空格韧涨。 “$@”返回多個(gè)字符串牍戚。

$#:返回所有腳本參數(shù)的個(gè)數(shù)。

$$ :Shell本身的PID(ProcessID)虑粥,即當(dāng)前進(jìn)程的PID如孝。

$! :Shell最后運(yùn)行的后臺(tái)Process的PID

$- :使用Set命令設(shè)定的Flag一覽

示例:

touch variable

vi variable

腳本內(nèi)容如下:

!/bin/sh

echo "number:$#"

echo "scname:$0"

echo "first :$1"

echo "second:$2"

echo "argume:$@"

保存退出

賦予腳本執(zhí)行權(quán)限

chmod +x variable

執(zhí)行腳本

./variable aa bb

number:2

scname:./variable

first: aa

second:bb

argume:aa bb

通過(guò)顯示結(jié)果可以看到:

$# 是傳給腳本的參數(shù)個(gè)數(shù)

$0 是腳本本身的名字

$1是傳遞給該shell腳本的第一個(gè)參數(shù)

$2是傳遞給該shell腳本的第二個(gè)參數(shù)

$@ 是傳給腳本的所有參數(shù)的列表

用法二:

獲取變量與環(huán)境變量的值

如:path=2,則echo path 或者echo{path}顯示的就是path的值娩贷。

在linux及unix的sh中第晰,以開(kāi)頭的字符串表示的是sh中定義的變量,這些變量可以是系統(tǒng)自動(dòng)增加的,也可以是用戶自己定義的PATH表示的是系統(tǒng)的命令搜索路徑茁瘦,和windows的%path%是一樣的$HOME則表示是用戶的主目錄品抽,也就是用戶登錄后工作目錄

示例:echo $PATH.

用法三:

shell中(( ))、( )甜熔、``與${ }的區(qū)別

說(shuō)明:

${ }這種形式其實(shí)與用法一和二是一樣的圆恤,屬于變量替換的范疇,只不過(guò)在變量替換中可以加上大括號(hào)腔稀,也可以不加大括號(hào)盆昙。

簡(jiǎn)而言之:(( ))屬于執(zhí)行計(jì)算公式,等價(jià)于[ ]焊虏,( )和` `屬于命令替換淡喜,{ }屬于變量替換

(1)$( )與``(反引號(hào)):返回括號(hào)中命令的結(jié)果

在bash中,$( )與` `(反引號(hào))都是用來(lái)作命令替換的炕淮,執(zhí)行括號(hào)或者反引號(hào)中的命令拆火。

命令替換與變量替換差不多,都是用來(lái)重組命令行的涂圆,先完成引號(hào)里的命令行们镜,然后將其結(jié)果替換出來(lái),再重組成新的命令行

示例:命令:echo today is(date "+%Y-%m-%d")润歉,顯示:today is 2014-07-01

注:在操作上模狭,這兩者都是達(dá)到相應(yīng)的效果,但是建議使用$( )踩衩,理由如下:

    1)``很容易與''搞混亂嚼鹉,尤其對(duì)初學(xué)者來(lái)說(shuō)。

    2)在多層次的復(fù)合替換中驱富,``必須要額外的跳脫處理(反斜線)锚赤,而$( )比較直觀。

最后褐鸥,$( )的弊端是线脚,并不是所有的類unix系統(tǒng)都支持這種方式,但反引號(hào)是肯定支持的叫榕。

示例:

      1# 將cmd1執(zhí)行結(jié)果作為cmd2參數(shù)浑侥,再將cmd2結(jié)果作為cmd3的參數(shù)

           cmd3 $(cmd2 $(cmd1))

     2 # 如果是用反引號(hào),直接引用是不行的晰绎,還需要作跳脫處理

      cmd3 `cmd2 \`cmd1\``

(2)${ }變量替換

一般情況下寓落,var與{var}是沒(méi)有區(qū)別的,但是用${ }會(huì)比較精確的界定變量名稱的范圍

示例:

取路徑荞下、文件名伶选、后綴

先賦值一個(gè)變量為一個(gè)路徑史飞,如下:

file=/dir1/dir2/dir3/my.file.txt

記憶方法如下:

是去掉左邊(在鍵盤上 # 在 $ 之左邊)

% 是去掉右邊(在鍵盤上 % 在 $ 之右邊)

單一符號(hào)是最小匹配;兩個(gè)符號(hào)是最大匹配

*是用來(lái)匹配不要的字符,也就是想要去掉的那部分

還有指定字符分隔號(hào)考蕾,與*配合祸憋,決定取哪部分

————————————————
版權(quán)聲明:本文為CSDN博主「木木統(tǒng)」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議肖卧,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明蚯窥。
原文鏈接:https://blog.csdn.net/weixin_37766087/article/details/99974385

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市塞帐,隨后出現(xiàn)的幾起案子拦赠,更是在濱河造成了極大的恐慌,老刑警劉巖葵姥,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件荷鼠,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡榔幸,警方通過(guò)查閱死者的電腦和手機(jī)允乐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)削咆,“玉大人牍疏,你說(shuō)我怎么就攤上這事〔ζ耄” “怎么了鳞陨?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)瞻惋。 經(jīng)常有香客問(wèn)我厦滤,道長(zhǎng),這世上最難降的妖魔是什么歼狼? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任掏导,我火速辦了婚禮,結(jié)果婚禮上羽峰,老公的妹妹穿的比我還像新娘碘菜。我一直安慰自己,他們只是感情好限寞,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著仰坦,像睡著了一般履植。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上悄晃,一...
    開(kāi)封第一講書(shū)人閱讀 51,287評(píng)論 1 301
  • 那天玫霎,我揣著相機(jī)與錄音凿滤,去河邊找鬼。 笑死庶近,一個(gè)胖子當(dāng)著我的面吹牛翁脆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鼻种,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼反番,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了叉钥?” 一聲冷哼從身側(cè)響起罢缸,我...
    開(kāi)封第一講書(shū)人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎投队,沒(méi)想到半個(gè)月后枫疆,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡敷鸦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年息楔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片扒披。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡值依,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出谎碍,到底是詐尸還是另有隱情鳞滨,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布蟆淀,位于F島的核電站拯啦,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏熔任。R本人自食惡果不足惜褒链,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望疑苔。 院中可真熱鬧甫匹,春花似錦、人聲如沸惦费。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)薪贫。三九已至恍箭,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瞧省,已是汗流浹背扯夭。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工鳍贾, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人交洗。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓骑科,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親构拳。 傳聞我的和親對(duì)象是個(gè)殘疾皇子咆爽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯(cuò)誤還是無(wú)法避免 以后資料會(huì)慢慢更新 大...
    數(shù)據(jù)革命閱讀 12,161評(píng)論 2 33
  • 1.if語(yǔ)句 1.1.回顧 在運(yùn)行腳本前,我們一般先對(duì)腳本的語(yǔ)法進(jìn)行檢查隐圾,如果腳本有bug伍掀,我們?cè)僬{(diào)試腳本; (1...
    Hye_Lau閱讀 3,495評(píng)論 0 1
  • 參考鏈接: https://wangdoc.com/bash/index.html 控制多條命令的繼發(fā) 命令的組合...
    yellowone閱讀 574評(píng)論 0 0
  • bash的配置文件 用戶登錄系統(tǒng)后暇藏,會(huì)啟動(dòng)一個(gè)接口程序蜜笤,也稱shell程序,一般默認(rèn)是bash盐碱,而這個(gè)程序的啟動(dòng)把兔,...
    SRE1閱讀 2,503評(píng)論 0 1
  • #井號(hào) (comments) #管理員$普通用戶 腳本中 #!/bin/bash #!/bin/sh 井號(hào)也常出現(xiàn)...
    Ten_Minutes閱讀 504評(píng)論 0 0