Shell系列(一)創(chuàng)建shell程序與shell變量

知乎高票回答:Bash處理一次性的瑣碎事物宵睦,Python處理自動化,代碼量較大的的維護任務(wù)。而需要效率的任務(wù)交給C/C++阐虚。
作為Linux開發(fā)人員,掌握Bash腳本是很重要的蚌卤,但是最近吸收的東西太多了沒辦法都記住实束,所以一定要寫寫博客記錄一下奥秆。
一個比較好的免費課程(shell腳本編程入門到精通)https://edu.aliyun.com/course/155?spm=5176.10731542.0.0.ATHyuM


一、創(chuàng)建步驟

開頭
#!/bin/bash#!用作shell命令的完全路徑咸灿,顯示后期命令以哪種shell來執(zhí)行這些命令构订。如不指定shell,以當(dāng)前shell作為執(zhí)行的shell避矢。/bin/sh ->bash鲫咽。
shell程序一般以.sh結(jié)尾。
創(chuàng)建shell程序的步驟

  • 創(chuàng)建一個包含命令和控制結(jié)構(gòu)的shell文件谷异。
  • 修改這個文件的權(quán)限使它可以執(zhí)行分尸。
  • 執(zhí)行。1)./example.sh 2)絕對路徑/root/test/example.sh 3)使用bash歹嘹,不需要執(zhí)行權(quán)限箩绍。bash example.sh。

二尺上、shell變量

shell傳遞數(shù)據(jù)的一種方法材蛛。變量是用來代表每個值的符號名。分為臨時/永久變量怎抛。
臨時變量:是shell程序內(nèi)部定義的卑吭,使用范圍僅限于定義它的程序,對其它程序不可見马绝。
永久變量:注意豆赏,是環(huán)境變量,其值不隨著shell腳本的執(zhí)行結(jié)束而消失富稻。
調(diào)用方法:echo $PATH(使用變量值時需要在前面加$)
環(huán)境變量非常重要掷邦,運行某個命令的時候,本地查找不到某個命令或文件椭赋,會到這個聲明的目錄中查找抚岗。
變量賦值

image.png

關(guān)于$()和${}:

$()實際上括號里是系統(tǒng)命令的轉(zhuǎn)化調(diào)用,如果你只是創(chuàng)建一個臨時變量哪怔,那么會顯示bash:command not found宣蔚,而如果想轉(zhuǎn)換這種變量需要使用花括號即${}。

image.png

前面加上$的變量表示調(diào)用該變量的值认境。
顯示所有變量:set胚委,多個單詞用(“”/'')引號括起來即可。
單引號和雙引號的區(qū)別:單引號之間的內(nèi)容原封不動地指定給了變量元暴。雙引號取消了空格的作用篷扩,特殊符號的含義保留。

image.png

刪除變量:unset name
位置變量和特殊變量:Shell解釋執(zhí)行用戶的命令時茉盏,將命令行的第一個字作為命令名鉴未,而其它字作為參數(shù)枢冤。由出現(xiàn)在命令行上的位置確定的參數(shù)成為位置參數(shù)。
如:ls -l —> ls為命令名铜秆,-l為位置參數(shù)淹真。
位置變量用$N來表示。如$0表示當(dāng)前程序文件名连茧,$N(1核蘸,……,n)表示命令行輸入的參數(shù)啸驯。

特殊變量:有些變量是一開始執(zhí)行Script腳本時就會設(shè)定客扎,且不能被修改,但我們不叫它只讀的的系統(tǒng)變量罚斗,而叫它特殊變量徙鱼。這些變量當(dāng)一執(zhí)行程序時就有了,以下是一些特殊變量:

  • $*:這個程序的所有參數(shù)
  • $#:這個程序的參數(shù)個數(shù)
  • $$:這個程序的PID
  • $!:執(zhí)行上一個后臺程序的PID
  • $?:執(zhí)行上一個指令的返回值

綜合實例:

一针姿、參數(shù)
#!/bin/bash
echo "$* all parameters"http://程序的所有參數(shù)
echo "$# parameters amount"http://程序的參數(shù)個數(shù)

touch /tmp/a.txt
echo "$$ PID"http://程序進程ID

touch /tmp/b.txt &
echo "$! Last PID"http://執(zhí)行上一個后臺指令的PID
echo "$$ PID"http://程序進程ID

運行后結(jié)果

image.png

解釋
注意$$是shell進程本身的PID袱吆,如果在shell script里,它就是shell script這個進程的PID距淫。而touch后面我加了一個&绞绒,這意味著它以后臺運行。因此如果我在touch a的時候加入$!榕暇,那么這個Last PID是沒有值的蓬衡。它是后臺最后一個運行的進程的PID

二拐揭、變量
#!/bin/bash
var1="abcd efg"
echo $var1
var2=1234
echo"The value of var2 is $var2"
echo $HOME
echo $PATH
echo $PWD

運行后結(jié)果

image.png

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末撤蟆,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子堂污,更是在濱河造成了極大的恐慌,老刑警劉巖龄砰,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盟猖,死亡現(xiàn)場離奇詭異,居然都是意外死亡换棚,警方通過查閱死者的電腦和手機式镐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來固蚤,“玉大人娘汞,你說我怎么就攤上這事∠ν妫” “怎么了你弦?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵惊豺,是天一觀的道長。 經(jīng)常有香客問我禽作,道長尸昧,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任旷偿,我火速辦了婚禮烹俗,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘萍程。我一直安慰自己幢妄,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布茫负。 她就那樣靜靜地躺著蕉鸳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪朽褪。 梳的紋絲不亂的頭發(fā)上置吓,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天,我揣著相機與錄音缔赠,去河邊找鬼衍锚。 笑死,一個胖子當(dāng)著我的面吹牛嗤堰,可吹牛的內(nèi)容都是我干的戴质。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼踢匣,長吁一口氣:“原來是場噩夢啊……” “哼告匠!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起离唬,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤后专,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后输莺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體戚哎,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年嫂用,在試婚紗的時候發(fā)現(xiàn)自己被綠了型凳。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡嘱函,死狀恐怖甘畅,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤疏唾,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布蓄氧,位于F島的核電站,受9級特大地震影響荸实,放射性物質(zhì)發(fā)生泄漏匀们。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一准给、第九天 我趴在偏房一處隱蔽的房頂上張望泄朴。 院中可真熱鬧,春花似錦露氮、人聲如沸祖灰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽局扶。三九已至,卻和暖如春叁扫,著一層夾襖步出監(jiān)牢的瞬間三妈,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工莫绣, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留畴蒲,地道東北人。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓对室,卻偏偏與公主長得像模燥,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子掩宜,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,947評論 2 355

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