Linux學習筆記之shell程式設計(基礎命令)

2021-09-11 06:40:11 字數 2330 閱讀 7329

目錄

環境變數 

位置變數

預定義變數

自定義變數

算數運算

內建測試判斷 成功/成立(1)  失敗/不成立(0)

數值比較:

字串測試:

檔案測試:

date

取字串

find 查詢檔案

使用者環境變數(/root/.bash_profile)

系統環境變數(/etc/profile) 

通常和指令碼聯合使用

$0 指令碼名稱

$0、$1、$2…… 位置引數

將傳遞給指令碼的引數儲存在位置變數中,以便於在指令碼中引用這些引數

bash定義了9個位置變數,分別$1,$2……$9,指令碼編寫者在指令碼中引用這9個變數,獲取傳遞給指令碼的引數。

$0 儲存當前程序或指令碼的名稱

$! 後台執行的最後乙個程序的pid號

$? 表示程式退出的代表(一般0代表執行成功,非0代表執行失敗)

$* 代表所有引數內容(整體)

$$ 代表當前程序的id號碼

$# 代表當前shell的引數個數

$@ 代表所有引數內容(逐個讀取)

例項:ls /etc

echo $0  返回的是0說明上一條指令正常結束,非0說明上一條指令失敗

語法格式:name=value

變數等號兩邊不能有空格,對大小寫敏感

定義好的變數使用 $變數名 來呼叫變數的值

+ - * / %

1 $((expression)) 注意兩層括號

2 $[expression)

3 expr expression

例項:a=2

b=2echo $((a+b))

expr 5 + 2 注意有空格

expr $a + $b  expr必須加上$,前兩種方法不需要

test 測試表示式

[ 測試表示式 ] (最常見的,測試表示式與中括號間一定有括號)

&& 邏輯與

cmd1 && cmd2 cmd1成功了才會執行cmd2

|| 邏輯或 

cmd1 || cmd2 cmd1失敗了才會執行cmd2

; 無邏輯關係

cmd1 ; cmd2 cmd1執行完才會執行cmd2

用於之間連線

-eq 等於為真

-ne 不等於為真

-gt 大於為真

-ge 大於等於為真

-lt 小於為真

-le 小於等於為真

例項:    a=2

b=2test $a -lt $b

echo $? 

(返回1)

[ $a -gt $b ]

echo $?

= 等於為真

!= 不等於為真

-z字串 字串長度為0為真

-n字串 字串長度不為0為真

例項:a="i love"

b="you"

[ "$a" = "$b" ] ; echo $? (注意字元比較要加引號)

a=""

[ -z "$a" ] ; echo $? (返回0)

如果a=" ",那麼返回1

-e 檔名 檔案存在為真

-r 檔名 檔案存在且可讀為真

-w 檔名 檔案存在且可寫為真

-x 檔名 檔案存在且可執行為真

-s 檔名 檔案存在且至少有乙個字元為真

-d 檔名 檔案存在且為目錄為真

-f 檔名 檔案存在且為普通檔案為真

-c 檔名 檔案存在且為字元型特殊檔案為真

-b 檔名 檔案存在且為塊特殊檔案為真

例項:[ -r /etc/passwd ] ; echo $?

返回0 (一定要是絕對路徑)

!(邏輯非) -o(邏輯或) -a(邏輯與)   :用於[ ]中的測試表示式

優先順序!>-a>-o

date 檢視時間

date -s "2016-4-9 12:44:40 " 修改時間(臨時生效)

date '+%y%m%d' (按格式輸出)

date '+%y%m%d%h%m'

a="201604091527"

echo $   (跳過前兩個,取三個)

返回160

a='123.log'

返貨123

echo $ (以.為分隔符遮蔽後面的)

-type -name -size -mtime

例項:find . -type d 查詢當前目錄下型別為目錄的檔案

Linux學習筆記之Shell入門

shell 是乙個命令列直譯器,它為使用者提供了乙個向 linux 核心傳送請求以便執行程式的介面系統級程式,使用者可以用 shell 來啟動 掛起 停止甚至編寫一些程式。shell 處在核心與外層應用程式之間,起著協調使用者與系統的一致性 在使用者與系統之間進行互動的作用。圖 1 是 linux ...

linux學習筆記之shell程式設計(指令碼)

bin bash 號表示注釋 shell指令碼從上往下依次執行 date grep root etc passwd 先加許可權 chmod x 1.sh或chmod 744 1.sh 輸入絕對路徑或相對路徑如.1.sh 表示當前目錄 bash 1.sh sh 1.sh source 1.sh 1.s...

linux學習筆記 shell

shell bash 212一般可以將shell理解為乙個命令處理器 乙個讀取並解釋所輸入命令的程式。其次,shell還支援一些shell指令碼。使用的shell型別,可以檢視環境變數echo shell 系統可用的shell路徑儲存在 etc shells 改變登入shell可以使用chsh ch...