Shell程式設計 bash

2021-10-06 21:41:42 字數 3074 閱讀 3713

shell是使用者與linux作業系統溝通的橋梁,也是一種用c語言編寫的程式,同時也是命令解釋程式的統稱。使用者既可以輸入命令執行,也可以利用shell指令碼程式設計,用以完成更加複雜的操作。時至今日,shell程式設計仍然起著不可忽視的作用,深入地了解和熟練地掌握shell程式設計,對更好地了解和使用linux有著重要的意義。

linux中有多種shell,如ash,bash,ksh等,其中,最常用同時也是預設的是bash。當普通使用者成功登入,系統將執行乙個shell程式,它提供了命令列提示符。

檔案命名格式: *.sh

常見使用方法:gedit hello.sh

賦予執行的許可權:chmod u+x hello.sh

執行:./hello.sh

檔案開頭需要用#! /bin/bash

例1,if的形式是if - do - then -else -fi

#! /bin/bash

read -p "請輸入乙個數:" tempif[

$temp -gt 0 ]

#這是比較數字大小的一種形式

then

echo

"您輸入的是正數"

else

echo

"您輸入的是非正數"

fi

整數比較1

-eq 等於,如:if [ 「a"−

eq

"a" -eq "

a"−eq"

b」 ]

-ne 不等於,如:if [ 「a"−

ne

"a" -ne "

a"−ne"

b」 ]

-gt 大於,如:if [ 「a"−

gt

"a" -gt "

a"−gt"

b」 ]

-ge 大於等於,如:if [ 「a"−

ge

"a" -ge "

a"−ge"

b」 ]

-lt 小於,如:if [ 「a"−

lt

"a" -lt "

a"−lt"

b」 ]

-le 小於等於,如:if [ 「a"−

le

"a" -le "

a"−le"

b」 ]

整數比較2

大於(需要雙括號),如:((「a

">

"a" > "

a">

"b」))

『>=』 大於等於(需要雙括號),如:((「a

">="

a" >= "

a">="

b」))

字串比較

= 等於,如:if [ 「a"=

"a" = "

a"="

b」 ]

== 等於,如:if [ 「a"=

="

a" == "

a"==

"b」 ],與=等價

!= 不等於,如:if [ 「a"!

="

a" != "

a"!=

"b」 ]

大於,在ascii字母順序下.如:

if [[ 「a

">

"a" > "

a">

"b」 ]]

if [ 「a""

a" \> "

a""b」 ]

注意:在結構中">"需要被轉義.

例2 測試for迴圈,for迴圈的形式是do - done形式

#! /bin/bash

read -p "請輸入乙個正數:" temp

# 此處的for迴圈類似python,注意要在seq 後加$temp

for i in

$(seq $temp)

doecho

$idone

例3,while測試,while迴圈的形式是do - done
#! /bin/bash

read -p "請輸入您的姓名,輸入q推出迴圈:" name

while

["$name"

!=""]do

if["$name"

=="q"

]then

break

fiecho

"歡迎您,$name"

read -p "請輸入您的姓名,輸入q推出迴圈:" name

done

例4,自定義函式示例

#! /bin/bash

function myfunc(

)read -p "請輸入第1個數:" x

read -p "請輸入第2個數:" y

myfunc $x

$ytotal=

$?echo

$total

例5,利用shell程式設計,實現1-10的數字累加求和

#! /bin/bash

#等於號兩邊不能有空格

sum=0

for i in

$(seq 10)

do# 這是(())表示式

sum=

$(($sum+$i))

done

echo

"1到10相加的結果為:$sum"

例6,列印9*9乘法表

#! /bin/bash

#列印99乘法表

row=1

while

[$row -le 9 ]

do colume=1

while

[$colume -le $row]do

echo -n "$row*

$colume=$((row*colume))

" colume=

$(expr $colume + 1)

done

echo

((row=$row+1))

done

Shell程式設計(bash變數)

bash變數 一 使用者自定義變數 二 環境變數 三 位置引數變數 四 預定義變數 一使用者自定義變數 變數呼叫 echo 變數名 變數刪除 unset 變數名 二環境變數 環境變數是全域性變數 使用者自定義變數是區域性變數 對系統生效的環境變數名和變數作用是固定的 設定環境變數 export 變數...

shell程式設計 bash變數

bash變數型別 本地變數的作用域為整個bash程序。區域性變數屬於本地變數。在bash中宣告變數的週期隨著該程序的週期而存在。定義本地變數 set varname jerry 引用變數 括號可省略 區域性變數的宣告 local varname value環境變數的作用域為當前shell程序及其子程...

shell程式設計 bash變數介紹

shell程式設計 bash變數介紹 變數是計算機記憶體的單元,其中存放的值可以改變。當 shell 指令碼需要儲存一些資訊時,如乙個檔名或乙個數字,就把它存放在乙個變數中。bash變數型別 本地變數的作用域為整個bash程序。區域性變數屬於本地變數。在bash中宣告變數的週期隨著該程序的週期而存在...