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中宣告變數的週期隨著該程序的週期而存在...