shell指令碼學習 一

2022-08-15 00:18:11 字數 1490 閱讀 7737

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

shell程式設計只需要有乙個文字編輯器和乙個能夠解釋執行的直譯器即可.

我現在學習的是bourne agine shell,即bash,也是大多數linux預設的shell.

一般情況下人們不區分bourne shell和bourne agine shell,像#!/bin/sh  和 #!/bin/bash.

一:第乙個shell指令碼

像學習大多數程式設計一樣,從hello world開始

開啟vi編輯器,新建乙個test.sh,副檔名可以自己定,主要方便記憶,輸入下面**

#!/bin/sh

echo "hello world"

其中#!是一種約定標記,它告訴系統後面跟的路徑指向的程式,即解釋此指令碼的直譯器

執行shell指令碼:

執行shell指令碼,需要使用者有執行的許可權,所以要先更給下許可權

方法一: ./test.sh 其中./不能省去不能直接寫test.sh

方法二: /bin/sh test.sh 這種方式執行可以在編寫test.sh時不寫#!/bin.sh

執行結果會輸出 hello world

二: shell變數

shell變數的定義,如 my_name="cat_crazy"

注意:1)定義變數的時候=號兩側不能有空格

2)變數名必須要以字母開頭,大寫或小寫

3)中間不能有空格,可以有下劃線

4)不能使用標點符號

5)不能使用bash儲存的關鍵字

使用變數: 在變數名前加$即可

my_name="cat_crzay"

echo $my_name

echo $

其中{}是可選的,只是為了使程式更好的識別變數的邊界

變數的賦值是不能加$符號,只有使用的時候才能加$,即$my_name="cat"這樣做會報錯

唯讀變數 :這個變數一旦宣告為唯讀變數,那麼就不能再此賦值

例如 my_name="cat_crazy"

readonly my_name

my_name="cat"

這樣做程式會報錯,this variable is read only

刪除變數 : 使用unset後跟變數名刪除, 例如unset my_name

shell字串

定義乙個字串可以使用單引號也可使用雙引號還可以不寫,單雙引號區別和php類似.

雙引號的優點:1)雙引號裡可以有變數;2)雙引號中可以使用轉義字元

shell陣列(只支援一維陣列)

定義乙個陣列

1) array_name=(1 2 3 4 ) 陣列的值之間使用空格隔開

2) array_name[0]=1

array_name[1]=2

注:下標可以不連續,但是必須要有,(最好使用整數作為下標,否則情況不知道怎麼解釋)

shell注釋

shell注釋就是在行首加#,shell沒有多行注釋

shell指令碼學習(一)

1 tput命令 通過 tput命令可以使指令碼 建立互動性的 專業性強的螢幕輸出 2 在使用tput前,需要在指令碼或命令列中使用 tput 命令初始化終端。tput init 3 tput常用命令 4 例1 控制字串顯示在螢幕 bin sh xy centertxt tput init cent...

shell指令碼學習一

shell指令碼是一種程式與linux核心的語言 第乙個shell指令碼 bin bash echo cxy 就是輸出cxy 如何執行這個指令碼呢 cd demo 進入shell指令碼的目錄 chmod x.test.sh 給當前指令碼授權 test.sh 執行當前指令碼 也可以使用source命令...

shell指令碼學習 一

型別描述 變數定義 不同於c語言,不需要指定變數型別,也沒有型別這個概念 變數初始化 變數定義可以使用 進行初始化賦值。等號兩邊不能有空格 變數賦值 變數可以定義之後,再進行初始化賦值。shell中並不刻意區分變數的定義和賦值,每個變數就是乙個符號,此符號的值就是最後乙個賦給它的值。變數引用 符號後...