Shell學習計畫 Shell 概念篇

2021-10-20 10:48:12 字數 1685 閱讀 7532

shell是運維開發最重要的一項語言!

幾乎所有的運維崗位都要求會shell語言,會用shell執行一些簡單的任務,做一些自動化運維相關的工作。

shell既是一種命令語言,又是一種程式語言,是使用者使用linux的橋梁。

shell是指一種應用程式,這個應用程式提供了乙個介面,使用者通過這個介面訪問作業系統核心的服務。

shell指令碼(shell script),是一種為shell編寫的指令碼程式。

通常我們所說的shell通常是指shell指令碼。

shell程式設計跟其他程式設計一樣,只要乙個能編寫**的文字編輯器和乙個能執行的指令碼直譯器就可以了。

當然linux的shell種類有很多:

我們所說的環境是bash(bourne again shell),它由於易用和免費,在我們日常工作中被廣泛使用。同時,bash也是大多數linux系統預設的shell。

在一般情況下,人們並不區分 bourne shell 和 bourne again shell,所以,像#!/bin/sh,它同樣也可以改為#!/bin/bash

#! 告訴系統其後路徑所指定的程式即是解釋此指令碼檔案的 shell 程式。

開啟文字編輯器,新建乙個檔案demo.sh,拓展名為sh(代表shell)

範例:hello world

#!/bin/bash

echo "hello world !"

echo "hello bro!"

將上面的**儲存為demo.sh,並cd到相應目錄

chmod +x ./demo.sh  #使指令碼具有執行許可權

./demo.sh #執行指令碼

注意:

一定要寫成./demo.sh,而不是demo.sh,直接寫 demo.sh,linux 系統會去 path 裡尋找有沒有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 path 裡,你的當前目錄通常不在 path 裡,所以寫成 demo.sh 是會找不到命令的,要用 ./demo.sh 告訴系統說,就在當前目錄找。

這種執行方式是直接執行直譯器,其引數就是shell指令碼的檔名

/bin/sh test.sh

/bin/php test.php

這種方式執行的指令碼,可以不需要在第一行指定直譯器資訊,因為寫了起不了作用

我們使用第二種方式,使用sh demo.sh命令執行指令碼輸出結果如下:

$ sh demo.sh

hello world !

hello 簡單教程!

今天簡單學習到這裡,明天見!

Shell學習計畫 Shell 陣列

今天來說一說陣列!陣列中可以存放很多值 bash shell中只支援一維陣列 不支援多維陣列 初始化時不需要定義陣列大小 shell 陣列語法格式如下 array name value1 valuen shell 陣列元素的下標由0開始,這與大部分程式語言都類似。shell 陣列用括號來表示,元素用...

Shell學習計畫 Shell 傳遞引數

我們在執行 shell 指令碼時可以向指令碼傳遞引數。shell 指令碼內可以獲取我們傳遞的引數 向指令碼傳遞的引數以空格分開,空格數量沒限制,但至少乙個。在 shell 指令碼內獲取引數的格式為 n n代表乙個數字,1 為執行指令碼的第乙個引數,2 為執行指令碼的第二個引數,以此類推.注意 0為執...

shell學習之 shell呼叫shell

2008 05 06 14 43 18 分類 linux 標籤 字型大小 大中小訂閱 fork是最普通的,就是直接在指令碼裡面用 directory script.sh來呼叫script.sh這個指令碼.執行的時候開乙個sub shell執行呼叫的指令碼,sub shell執行的時候,parent ...