7 shell程式設計

2022-10-10 15:33:11 字數 3110 閱讀 9565

一.shell指令碼介紹

shell是什麼?

一門程式語言,用來解釋執行這門程式語言語法的直譯器

計算機體系結構:命令—>shell直譯器—>系統呼叫的介面—>核心—>計算機硬體

什麼是程式語言:人——————>程式語言——————>計算機

什麼是程式設計:人——————>程式語言——————>計算機(先幹什麼—>再幹什麼—>然後幹什麼)

什麼是程式:我們把計算機做事的步驟用程式語言翻譯下來,然後存放到檔案中,該檔案就是程式

執行shell指令碼

乙個shell指令碼執行的三個步驟:bash a.sh

1.先啟動bash直譯器

2.bash直譯器會把a.sh的內容從硬碟讀入記憶體

3.bash直譯器會識別剛剛讀入記憶體內容,解釋執行shell**

執行shell指令碼的兩種方式

方式1:

bash 指令碼的檔案路徑

方式2:

指令碼的檔案絕對路徑

./指令碼的檔案相對路徑

二.shell語法

1.變數

什麼是變數?

變:事物的狀態是可以變化的

量:記錄下事物的狀態

為何要有變數?

如何用變數?

使用原則:先定義後使用  

定義變數:

height=190

age=18

name=egon

訪問變數:

echo $height  

echo $

修改:height=200

變數的三大組成部分:

變數名:相當於門牌號,是用來訪問到變數值的

變數值:記錄的事物狀態,即存放到記憶體中的資料

變數名的命名:

前提:在見名知意的前提下,盡可能地精簡

規則:1.由字母數字下劃線組成:height_of_egon=190

2.不能以數字開頭

3.不能使用關鍵字

4.不要使用中文

變數值:

整型:年齡,等級,號碼

age=19

浮點型:薪資,身高,體重

salary=3.3

字串:描述性質的狀態,名字,性別,愛好,國籍

msg="hello world"

msg='hello world'  # 硬引用

··反引號  # 取結果集,touch ·date +%f·.txt  或者 touch $(date +%f).txt

2.變數的作用域

變數的作用域就是變數的生效範圍

全域性作用域:在當前shell程序裡有效(首先vim b.sh;source b.sh表示b.sh在當前程序執行;bash b.sh表示開啟乙個新的子程序執行)

環境變數:path 在所有的程序有效  

1).echo "export path=$path:/root" >> /etc/profile  ——>建立新的命令,將命令的絕對路徑追加加到path變數後

2).path=$path:/root——>登入使用者首先執行bash程式,生效

export path——>遺傳給其它任何子shell 

source /etc/profile——>手動生效

3.流程控制

1)if判斷

if 條件1;then

**1**2

**3elif 條件2;then

**1**2

**3else 條件1;then

**1**2

**3fi

單分支:

if 條件1;then

**1**2

**3fi

雙分支:

if 條件1;then

**1**2

**3else

**1**2

**3fi

#!bin/bash

echo "111"

echo "222"

if [ 10 -gt 30 ];then

echo "ok"

else

echo "no"

fiecho "333"

多分支:   

#!/bin/bash

read -p "請輸入你的成績:" score

if [ $score -ge 90 ];then

echo "優秀"

elif [ $score -ge 80 ] && [ $score -lt 90 ];then

echo "良好"

elif [ $sore -ge 70 ] && [ $score -lt 60 ];then

echo "一般"

else

echo "很差"

fi2)迴圈

fi) &  # ()括號括起來,&表示併發執行,速度快

done

5.#!/bin/bash

for i in

doping -c 1 192.168.182.$i &>/dev/null && echo "192.168.182.$i up" >>/tmp/ip1.log || echo "192.168.182.$i down" >>/tmp/ip1.log &

done

7 Shell指令碼程式設計高階

1 編寫指令碼實現傳入程序pid,檢視對應程序 proc下的cpu 記憶體指標。bin bash color red start 1 31m color red end 0m read p please input the pid to check cpu mem infomation pid ch...

Shell 學習7 Shell 特殊變數

前面已經講到,變數名只能包含數字 字母和下劃線,因為某些包含其他字元的變數有特殊含義,這樣的變數被稱為特殊變數。例如,表示當前shell程序的id,即pid,看下面的 echo 執行結果 29949特殊變數列表 0 當前指令碼的檔名 n 傳遞給指令碼或函式的引數。n 是乙個數字,表示第幾個引數。例如...

shell 學習筆記7 shell 函式

把相同程式段定義成函式,可以減少整個程式的 量,提公升開發效率 增加程式的可讀性,易讀性,提公升管理效率 可以失效程式功能模組化,使程式具備可移植性 其實linux系統裡面近2000個命令可以說都是shell的函式 function 名稱 復合命令塊 重定向 function 函式名 1 開發乙個建...