一起來學習shell吧季率。

shell環(huán)境使得用戶能與操作系統(tǒng)的內核進行交互操作,shell腳本就是一些文件描沟,我們將一系列需要執(zhí)行的命令寫入其中飒泻,通過使用某種基于解釋器的編程語言,然后通過shell執(zhí)行這些腳本吏廉。

在接下來的學習歷程中蠢络,我使用的都是Bash,它是目前大多數Linux系統(tǒng)默認的shell環(huán)境迟蜜。

1.shell腳本通常是以#!起始的文本文件刹孔,例如:
#!/bin/bash
/bin/bash 是bash解釋器的路徑,#!/bin/bash 意思就是使用bash作為shell腳本的解釋器。

2.運行腳本的兩種方式:

  • 將腳本作為命令行參數
  • 使腳本具有可執(zhí)行權限

先舉例第一種髓霞,新建firstScript.bash腳本卦睹,在文本中輸入 echo Hello My First Script! 然后切換到腳本所在的根目錄,終端執(zhí)行:
bash firstScript.bash
終端輸出 Hello My First Script!
可以看到腳本已經運行起來方库,并且按照我們的意愿輸出了Hello My First Script结序!這句話。

但是纵潦,如果使用命令行參數的方法運行腳本徐鹤,那么 #! 也就沒有存在的意義了,為了讓腳本能夠獨立運行邀层,我們需要賦予腳本可執(zhí)行權限返敬,并且在腳本中使用#!來指定運行腳本所需的解釋器。

打開我們的腳本文件寥院,在首行輸入#!/bin/bash
然后切換到腳本的根目錄劲赠,終端執(zhí)行:
chmod a+x firstScript.bash
該命令賦予了所有用戶firstScript的可執(zhí)行權限,使得腳本能以下面的方式運行:
./firstScript.bash (./表示當前目錄)
或者使用腳本的完整路徑運行腳本:
/Users/bombuu/valie/firstScript.bash

3.終端打咏招弧:
終端作為交互式工具凛澎,用戶可以通過它與shell環(huán)境進行交互,在終端中打印文本是絕大多數shell腳本需要進行的基本工作估蹄,能夠執(zhí)行打印的方法有:

  • 使用echo基本命令
  • 使用printf命令

默認情況下塑煎,echo在每次調用后都會添加一個換行符,而printf并不會自動添加換行符臭蚁。

4.變量
腳本語言通常不需要在使用變量之前聲明其類型最铁,直接賦值即可。在Bash中變量的值都是字符串刊棕,在給變量賦值時不論有沒有使用引號,值都會以字符串的形式存儲待逞。

  • 變量賦值:
    var=value
    var是變量名甥角,value是值
    注意:var = value不同于var=value,前者是相等操作识樱,后者才是賦值操作嗤无。

  • 打印變量的值:
    echo $var
    在變量名前加上$前綴就可以打印出變量的內容。

  • 獲取字符串長度
    ${#var}

  • 獲取當前使用的shell類型
    echo $SHELL

5.使用shell進行數學運算

  • let命令可以直接執(zhí)行基本的算數操作(變量名前不需要加$前綴)
num1=1;
num2=2;
let sum=num1+num2;

自加操作:let num1++
自減操作:let num1--

  • [ ] 操作符使用和let類似
    sum=$[ num1 + num2 ]
    在[ ]中也可以使用前綴:`sum=[ $num1 + 10 ]`

  • 使用( ( ) ) 進行操作時怜庸,變量名前需要加上`sum=(( num1 + num2 ))`

  • expr也可以用于基本算數操作:

sum=`expr 5 + 10`
sum=$(expr $num1 + 10)

以上方法只適用于整型当犯,不支持浮點型!

6.使用bc進行數學運算的高級操作
echo "4 * 0.25" => 1.00

  • 設定小數精度:
    echo "scale=2;10/3" | bc
    scale=2即保留兩位小數割疾,同時以分號作為定界符嚎卫,將scale參數置于要執(zhí)行的操作之前。
  • 進制轉換
num=3
echo "obase=2;$num" | bc

以上是將十進制轉換成二進制宏榕。

  • 計算平方根以及次方
echo "sqrt(100)" | bc
echo "10^3" | bc
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末拓诸,一起剝皮案震驚了整個濱河市侵佃,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌奠支,老刑警劉巖馋辈,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異倍谜,居然都是意外死亡迈螟,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門尔崔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來答毫,“玉大人,你說我怎么就攤上這事您旁±映#” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵鹤盒,是天一觀的道長蚕脏。 經常有香客問我,道長侦锯,這世上最難降的妖魔是什么驼鞭? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮尺碰,結果婚禮上挣棕,老公的妹妹穿的比我還像新娘。我一直安慰自己亲桥,他們只是感情好洛心,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著题篷,像睡著了一般词身。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上番枚,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天法严,我揣著相機與錄音,去河邊找鬼葫笼。 笑死深啤,一個胖子當著我的面吹牛,可吹牛的內容都是我干的路星。 我是一名探鬼主播溯街,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了苫幢?” 一聲冷哼從身側響起访诱,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎韩肝,沒想到半個月后触菜,有當地人在樹林里發(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡哀峻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年涡相,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片剩蟀。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡催蝗,死狀恐怖,靈堂內的尸體忽然破棺而出育特,到底是詐尸還是另有隱情丙号,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布缰冤,位于F島的核電站犬缨,受9級特大地震影響,放射性物質發(fā)生泄漏棉浸。R本人自食惡果不足惜怀薛,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望迷郑。 院中可真熱鬧枝恋,春花似錦、人聲如沸嗡害。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽霸妹。三九已至十电,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間抑堡,已是汗流浹背摆出。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工朗徊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留首妖,地道東北人。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓爷恳,卻偏偏與公主長得像有缆,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內容

  • 0.linux啟動的步驟 設備加電----》BIOS自檢-----》grub引導啟動-----》加載內核----》...
    萌面大叔2閱讀 772評論 0 1
  • 基礎命令 主要的命令和快捷鍵 Linux系統(tǒng)命令由三部分組成:cmd + [options]+[operation...
    485b1aca799e閱讀 1,086評論 0 0
  • 個人學習批處理的初衷來源于實際工作棚壁;在某個迭代版本有個BS(安卓手游模擬器)大需求杯矩,從而在測試過程中就重復涉及到...
    Luckykailiu閱讀 4,691評論 0 11
  • shell腳本語句 運算符符 運算符的使用+ - * /1. expr是計算整數類型行的數據2. 運算符左右都要有...
    I踏雪尋梅閱讀 351評論 0 2
  • 第一節(jié) Shell概述 1.Shell是什么 Shell是一個命令行解釋器,它為用戶提供了一個向Linux內核發(fā)送...
    littlexjing閱讀 1,902評論 0 1