第一個(gè)shell腳本

?平時(shí)多多少少都會(huì)接觸linux,確不知道如何去寫shell script,因此想用一周的時(shí)間系統(tǒng)學(xué)習(xí)一下shell script怎么寫?

所有的代碼學(xué)習(xí)都是用向世界問好的"Hello World"開始的,那么我們的shell script也從這里開始。


1、第一行#bin/bash聲明這個(gè)script使用的shell名稱

因?yàn)槲覀兯玫膕hell為bash,所以必須要以“#bin/bash”來聲明這個(gè)文件內(nèi)的語法使用bash,那么當(dāng)程序執(zhí)行時(shí),它就能夠加載bash的相關(guān)環(huán)境配置文件,在很多情況下,如果沒有設(shè)置這一行,那么該程序很可能無法執(zhí)行,因?yàn)橄到y(tǒng)無法判斷程序需要使用什么shell來執(zhí)行。

2、程序內(nèi)容的說明

整個(gè)程序中,除了第一行的“#!”是用來聲明shell的之外,其他的“#”都是“批注”的用途,使用批注是編寫程序是一個(gè)需要養(yǎng)成的習(xí)慣,批注應(yīng)包括作者,日期,程序?qū)崿F(xiàn)的功能以及每次所做的改動(dòng)項(xiàng)等,這樣有助于以后對(duì)程序的維護(hù)。

3、主要程序部分

本程序的主要程序部分就是echo那一行,用于打印“Hello World”

4、告知程序的執(zhí)行結(jié)果

在linux中,判斷一條語句是否執(zhí)行成功,可以用$?這個(gè)變量來查看。在這個(gè)程序當(dāng)中,我們也同樣用了一個(gè)exit命令來讓程序中斷,并且回傳一個(gè)數(shù)值給系統(tǒng),exit0代表程序結(jié)束并傳回一個(gè)0給系統(tǒng),所以當(dāng)我們執(zhí)行完這個(gè)script,緊接著執(zhí)行echo $?,就會(huì)得到0的結(jié)果

5、關(guān)于程序的執(zhí)行

a、我們可以直接在當(dāng)前目錄下使用sh sh01.sh來執(zhí)行。(sh01為文件名)

b、由于腳本寫完后沒有執(zhí)行權(quán)限,故可以用chmod +x sh01.sh賦予可執(zhí)行權(quán)限,再用絕對(duì)路徑或相對(duì)路徑./sh01.sh來執(zhí)行。

d、使用source sh01.sh的方式來執(zhí)行,這里說下用source執(zhí)行和用前三種方式執(zhí)行的區(qū)別,用source執(zhí)行不會(huì)創(chuàng)建子進(jìn)程,即在script中創(chuàng)建的變量等會(huì)在bash中生效,而前三種執(zhí)行方式都會(huì)在bash中創(chuàng)建子進(jìn)程,那么創(chuàng)建的變量以及執(zhí)行的語句都只會(huì)在script中生效,這個(gè)我們可以用python中的全局變量和局部變量的方式去理解,即前三種執(zhí)行方式相當(dāng)于函數(shù)中的局部變量,只在當(dāng)前函數(shù)中生效,而source執(zhí)行方式相當(dāng)于全局變量,在整個(gè)程序中都生效。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第一個(gè)shell腳本 1、關(guān)于#! 在腳本開頭的 sha-bang (#!) 是告訴系統(tǒng)這個(gè)文件是由特定命令解釋器...
    Fengya閱讀 808評(píng)論 0 50
  • 打開文本編輯器(可以使用 vi/vim 命令來創(chuàng)建文件),新建一個(gè)文件 test.sh,擴(kuò)展名為 sh(sh代表s...
    孤月環(huán)舟閱讀 277評(píng)論 0 0
  • 打開文本編輯器,新建一個(gè)文件,擴(kuò)展名為sh(sh代表shell),擴(kuò)展名并不影響腳本執(zhí)行,見名知意就好,如果你用p...
    Viking_Den閱讀 563評(píng)論 0 2
  • 上一篇寫了什么是shell是關(guān)于一些理論的東西,因此就決定寫寫shell腳本看:第一個(gè)shell腳本打開文本編輯器...
    yyshang閱讀 275評(píng)論 0 1
  • 1. vi test 2. 在vim里面寫:#! /bin/bash#!告訴系統(tǒng)由哪個(gè)編譯器執(zhí)行,后面跟的是she...
    黑山老水閱讀 684評(píng)論 0 0

友情鏈接更多精彩內(nèi)容