Linux 中shell指令碼之符號篇

2021-08-03 17:54:41 字數 2167 閱讀 4159

shell簡介:

shell的作用是解釋執行使用者的命令戶,有兩種執行方式:

互動式:使用者輸入一條命令,shell就解釋執行一條

批處理(batch):使用者事先寫多個shell指令碼(script),其中有很多條命令,讓shell一次把這些命令執行完,而不必一條一條地敲命令。 

shell指令碼和程式語言很相似,也有變數和流程控制語句,但shell指令碼是解釋執行的,不需要編譯,shell程式從指令碼中一行一行讀取並執性這些命令,相當於乙個使用者把指令碼中的命令一行一行敲到shell提示符下執行。

shell的特性:

1,shell

是一門弱型別語言2,

shell

是一種解釋性的語言

3,sh

ell中沒有型別,所有的變數都可以直接使用,不用直接使用

為什麼shell指令碼是乙個文字檔案不需要編譯就可以執行

1,bash可以直接執行,執行的不是shell指令碼,先載入bash,將指令碼作為命令列引數

2,shell指令碼不可以直接執行,是直譯器幫忙執行的

3,先建立子程序,讓子程序去exec

4,依賴其直譯器,並不是shell自己執行的

5,一旦執行就會影響其他的,這叫做內建命令,是shell直譯器的乙個命令

shell執行指令碼

vim script.sh輸入以下的指令碼語言:

使用第一種執行方式:chmod +x script.sh

使用第二種方式執行:/bin/bash script.sh

shell變數:

在script.sh輸入以下指令碼

執行結果:

shell的計算:

在script.sh中輸入以下指令碼:

#!/bin/bash

sum=0

i=100

j=30

echo i=$i j=$j

(( sum=i+j))

res=$((i+j))

echo i+j:

echo sum:$sum

echo res:$res

(( sub=i-j ))

res=$((i-j))

echo i-j:

echo sub:$sub

echo sub:$res

((mul=i*j))

res=$((i*j))

echo i*j:

echo mul:$mul

echo res:$res

((div=i/j))

res=$((i/j))

echo i/j:

echo div:$div

echo div:$res

((mod=i%j))

res=$((i%j))

echo i%j:

echo mod:$mod

echo res:$mod

執行 結果為:

$( )和``

``:由反引號括起來的也是一條命令,shell先執行該命令,然後將輸出結果立刻代換到當前命令列中。

$():算術代換:$(())用於算術計算,$(())中的shell變數取值將轉換成整數,

$( )和``區別:

(1)``很容易與''搞混亂,尤其對初學者來說。

(2)在多層次的復合替換中,``必須要額外的跳脫處理(反斜線),而$( )比較直觀。

(3)最後,$( )的弊端是,並不是所有的類unix系統都支援這種方式,但反引號是肯定支援的。

Linux之shell指令碼

1.shell是系統的使用者介面,提供了使用者與核心進行互動操作的一種介面。它接收使用者輸入的命令並把它送入核心去執行。2.每個linux系統的使用者可以擁有他自己的使用者介面或shell,用以滿足他們自己專門的shell需要。同linux本身一樣,shell也有多種不同的版本 比如bash或sh ...

linux之shell指令碼

shell 是指一種應用程式,這個應用程式提供了乙個介面,使用者通過這個介面訪問作業系統核心的服務,是指令碼中命令的直譯器。1 記錄命令執行的過程和執行邏輯,以便以後重複執行 2 指令碼可以批量處理主機 3 指令碼可以定時處理主機。bin bash 幻數 指令碼執行的直譯器,最優先執行vim自動新增...

shell指令碼 複數 linux之shell指令碼

1 如何向指令碼傳遞引數 script argument 例子 顯示檔名稱指令碼 2 如何在指令碼中使用引數 第乙個引數 1,第二個引數 2 例子 指令碼會複製檔案 arg1 到目標位址 arg2 3 如何計算傳遞進來的引數 4 如何在指令碼中獲取指令碼名稱 05 如何檢查之前的命令是否執行成功 6...