linux中什麼是shell指令碼

2022-03-15 16:00:43

在linux中,shell指令碼是一種程式設計方式,就是一些命令的集合。shell指令碼將一些shell語法與指令寫在裡面,利用管道命令以及流量重導向等功能,達到想要的處理目的,是臨時寫的小程式用於完成當前的工作。

本教學操作環境:linux7.3系統、Dell G3電腦。

linux中什麼是shell指令碼

一.shell指令碼的概念及意義

shell指令碼是linux下的一種程式設計方式,指令碼(shell script)是利用shell的功能所寫的一個程式,這個程式是使用純文字檔案,將一些shell的語法與指令寫在裡面,然後用正規表示法,管道命令以及資料流重導向等功能,以達到我們所想要的處理目的。說白了,就是為了解決linux的實際問題,臨時寫的一個小程式來完成當前的工作,如果需要多次使用,還能儲存下來回圈使用。

二.指令碼的規範

指令碼使用了shebang機制,即這樣的格式:!#/bin/bash、!#/use/bin/python。需要簡單的進行shell指令碼的解釋。下面舉一個樣例:

#!/bin/bash
# ——————————————
# Filename: hello.sh
# Revision: 1.1
# Date: 2017/08/05
# Author: Mr.Dong
# Email: [email protected]
# Website: www.magedu.com
# Description: This is the first script
# ——————————————
echo 「hello world」

利用這些資訊,可以很快知道這個指令碼的用處,以便於工作的使用。

在執行的時候可以使用下面兩條命令進行指令碼偵錯

bash -n hello.sh 來檢視指令碼的語法錯誤

bash -x hello.sh 可以檢視指令碼的執行步驟

三.變數

1.本地變數

本地變數只對當前shell有效,對子shell無效(SHLVL檢視是幾級shell)。

變數賦值:name=’value’

字串賦值:name=」root」

變數參照:name=」$USER」

命令參照:name=COMMAND name=$(COMMAND)

顯示已定義的所有變數:set

刪除變數:unset name

2.環境變數

環境變數對當前SHELL及其子SHELL均有效。

變數的宣告和賦值命令:

export name=VALUE
declare -x name=VALUE

變數的參照:$name,${name}

顯示所有的環境變數命令:

env printenv export declare -x

bash自帶環境變數:

PATH SHELL USER UID HOME PWD SHLVL LANG MAIL HOSTNAME HISTSIZE

3.唯讀變數

宣告唯讀變數:

readonly name
declare -r name

檢視唯讀變數: readonly -p

4.位置變數

$1, $2, … :對應第1 、第2 等引數,shift [n] 換位置

$0: 命令本身

$: 傳遞給指令碼的所有引數,全部引數合為一個字串

$@: 傳遞給指令碼的所有引數,每個引數為獨立字串

$#: 傳遞給指令碼的引數的個數

$@ $ 只在被雙引號包起來的時候才會 有 差異

set —

四.算術運算與邏輯運算

1.算術運算

算數運運算元:+ – * / %(取餘) **(乘方)

常用的運算:

(1) let var= 算術表示式

(2) var=$[ 算術表示式]

(3) var=$(( 算術表示式))

(4) var=$(expr arg1 arg2 arg3 …)

(5) declare –i var = 數值

(6) echo ‘ 算術表示式’ | bc

產生亂數命令:echo $[$RANDOM%number] 0-number之間的亂數

賦值運算:+= -= *= /= %=

自增和自減:

let var+=1
let var++
let var-=1
let var–

2.邏輯運算

true=0 false=1

與 1&&1=1 1&&0=0 0&&1=0 0&&0=0

或 1||1=1 1||0=1 0||1=1 0||0=0

非 !1=0 !0=1

五.test命令

test命令是shell環境中測試條件表示式的實用工具。

例如:

test 「$A」 == 「$B」 && echo 「Strings are equal」
[ 「$A」 == 「$B」 ] && echo 「Strings are equal」

這兩種表述表達同一種意思。

[[ ]]表示支援正規表示式

數值比較: 字串比較:

-gt 是否大於 >

-ge 是否大於等於 >=

-eq 是否等於 ==

-ne 是否不等於 !=

-lt 是否小於 <

-le 是否小於等於 <=

相關推薦:《Linux視訊教學

以上就是linux中什麼是shell指令碼的詳細內容,更多請關注TW511.COM其它相關文章!