Linux shell程式設計

2021-10-02 05:55:09 字數 2111 閱讀 8696

shell是命令直譯器,也可以程式設計.

常用的shell有

ash,bash,ksh,csh,zch

shell中的環境變數

home:儲存註冊目錄的完整路徑名

ptath:儲存用冒號分隔的路徑路徑,shell將按此給出的順序搜尋這些目錄,查詢可執行檔案執行

term:終端型別

uid:當前使用者的標識,一串數字

pwd:絕對路徑

shell中的變數
臨時變數:shell內部定義,包括自定義變數和位置變數

永久變數:就是環境變數,如$path,$lang,$shell,$ps1,$home

變數命名:字母,數字,下劃線組成,不可以數字開頭,讀變數用$.

__注:值中有空格,需要使用"",單引號不解釋其中變數,雙引號會解析其中變數__

shell中其他的預定義臨時變數
$#  //傳給指令碼的引數的個數

$0 //指令碼本身的名字

$@ //傳給指令碼所有引數的列表

$* //以乙個字串顯示所有向指令碼傳遞的引數

$$ // 指令碼執行當前的id號

$? //顯示上條命令的退出狀態,0表示無錯誤,其它表示有錯誤

shell指令碼編寫
#! /bin/sh		//在shell中#表示注釋,第一行的#!為特列,保證直譯器解釋本指令碼

time=`date` //反引號``表示會執行反引號裡的命令

echo $time //讀變數是使用$

執行shell

1.給該使用者賦予shell的執行許可權

2.使用直譯器 sh ./***x.sh

鍵盤輸入-read

#! /bin/sh

read number

echo $read

算數運算

算數運算使用expr

運算子左右需要空格,加減乘除 ,其中乘的標誌需要加轉義符,將意思轉移為本意乘

expr 3+5		//5

expr 3 + 5 //8

expr 3 / 5 //8

expr 3 \* 5 //15

expr `expr 12 - 7` / 3 //1

迴圈語句

大於 -gt (greater than)

小於 -lt (less than)

大於或等於 -ge (greater than or equal)

小於或等於 -le (less than or equal)

不相等 -ne (not equal)

if-else

#輸出三個引數最大數

#! /bin/sh

if [ $# -lt 3 ];then

echo"numbers is not correct!"

else

echo "ok!!!"

fiif [ $1 -lt $2 ];then

max=$2

else

max=$1

fiif [ $max -lt $3 ];then

max=$3

fi

echo "the max number is:$max"

while
#!/bin/sh

i=1sum=0

while [ $i -lt 100 ]

do sum=`expr $sum + $i`

((i++))

done

echo $sum

for
#!/bin/sh

sum=0

for i in `aeq 100`

do sum=`wxpr $sum + $i

i=`expr $i + 1`

done

echo $sum

//或sum=0

for((i=0;i<=100;i++))

do sum=`expr $xum + $i`

done

echo $sum

linux shell 程式設計

bin bash comments your commands go here 首行中的符號 告訴系統其後路徑所指定的程式bash即是解釋此指令碼檔案的shell程式。除第一行外,以 開頭的行就是注釋行,直到此行的結束。如果一行未完成,可以在行尾加上 這個符號表明下一行與此行會合併為同一行。有環境變...

linux shell 程式設計

1 程式設計入門 shell的簡介。從程式設計師的角度來看,shell本身是一種用c語言編寫的程式,從使用者的角度來看,shell是使用者與linux作業系統溝通的橋梁。使用者既可以輸入命令執行,又可以利用 shell指令碼程式設計,完成更加複雜的操作。在linux gui日益完善的今天,在系統管理...

Linux Shell 程式設計

檔案描述 shell 代號 dev stdin 標準輸入,一般指的是鍵盤輸入 dev stdout 標準輸出,一般指終端顯示器 dev stderr 標準錯誤,一般指終端顯示器 l輸出重定向 l輸入重定向 l追加重定向 l錯誤重定向 2 l輸出和錯誤同時重定向 應用例子 1.將 ls的結果輸出到檔案...