shell程式設計(二)

2022-05-19 08:05:26 字數 3405 閱讀 9277

常見的命令詳解:

1.grep 命令詳解

定義:grep命令是我們常用的乙個強大的文字搜尋命令

格式:grep [引數] [關鍵字] 《檔名》

引數: -c: 輸出匹配到的關鍵字的引數

-n: 顯示匹配行和行號

-v: 顯示不包含匹配檔案的所有內容

-i:不區分大小寫

精確定位錯誤**:grep -nr [錯誤關鍵字] *

2. sed 命令詳解

格式:sed [引數] '《匹配條件》 [動作]' [檔名]

2.引數為 -i :表示對檔案進行編輯

動作詳解:

-a 在匹配到的內容下一行增加內容

-i 在匹配到的內容上一行增加內容

-d 刪除匹配到的內容

-s 替換匹配到的內容

替換:命令格式: sed -i [替換格式] [檔名]

注意:替換命令的寫法:'s###'  --->  's#原內容##' ---> 's#原內容#替換後內容#'

增加:2.1.在指定行號的下一行增加內容

增加多行:sed -i '1,3a\增加內容' 檔名

2.2.在指定行號的當前行增加內容

指定一行增加:sed -i '行號i\增加的內容' 檔名

指定多行增加: sed -i '1,3a\增加內容' 檔名

刪除:2.1.指定行號刪除: sed -i '行號d' 檔名

2.2刪除多行: sed -i '1,3d' 檔名

3.awak命令詳解

格式:awk [引數] '[ 動作]' [檔名]

常見引數: -f 指定行的分隔符

常見動作: print 顯示內容

$0 顯示當前行所有內容

$n 顯示當前行的第n列內容,如果存在多個$n,它們之間使用逗號(,)隔開

常見內建變數: filename 當前輸入檔案的檔名,該變數是唯讀的

nr 指定顯示行的行號

nf 輸出 最後一列的內容

ofs 輸出格式的列分隔符,預設是空格

fs 輸入檔案的列分融符,預設是連續的空格和tab

4. find 命令詳解

格式:find [路徑] [引數] [關鍵字]

引數: -name 按照檔名查詢檔案。

-perm 按照檔案許可權來查詢檔案。

-user 按照檔案屬主來查詢檔案。

-group 按照檔案所屬的組來查詢檔案。

-type 查詢某一型別的檔案,(d--目錄,f--普通檔案)

流程控制:

單分支if語句

(單一條件,只有乙個輸出)

#!/bin/bash

# 單if語句的使用場景

if [ "$1" == "nan" ]

then

echo "您的性別是 男"

fi

雙分支if語句

(乙個條件,兩種結果)

#!/bin/bash

# 單if語句的使用場景

if [ "$1" == "nan" ]

then

echo "您的性別是 男"

else

echo "您的性別是 女"

fi

多分支if語句

(n個條件,n+1個結果)

#!/bin/bash

# 單if語句的使用場景

if [ "$1" == "nan" ]

then

echo "您的性別是 男"

elif [ "$1" == "nv" ]

then

echo "您的性別是 女"

else

echo "您的性別,我不知道"

fi

case 選擇語句

(在多if語句的基礎上對指令碼進行公升級)

# cat case.sh

#!/bin/bash

# case語句使用場景

case "$1" in

"start")

echo "服務啟動中..."

;;"stop")

echo "服務關閉中..."

;;"restart")

echo "服務重啟中..."

;;*)

echo "$0 指令碼的使用方式: $0 [ start | stop | restart ]"

;;esac

for 迴圈語句

(迴圈指定的所有元素,迴圈完畢之後就退出)

#!/bin/bash

# for語句的使用示例

for i in $(ls /root)

do echo "$"

done

while 迴圈語句

(只要條件滿足,就一直迴圈下去)

#!/bin/bash

# while的示例

a=1while [ "$" -lt 5 ]

do echo "$"

a=$((a+1))-->相當於a+=1

done

until 迴圈語句:

(只要條件不滿足,就一直迴圈下去)

#!/bin/bash

# until的示例

a=1until [ "$" -eq 5 ]

do echo "$"

a=$((a+1))

done

shell裡邊函式的基礎知識

簡單函式:

定義函式:

函式名()

# 函式主框架

if [ $# -eq 1 ]--->引數數量

then

case "$" in

start)

echo "服務啟動中..."

;;stop)

echo "服務關閉中..."

;;restart)

echo "服務重啟中..."

;;*) -->其他情況

usage

;;esac

else

usage --->幫助資訊

fi

shell程式設計《二》

一 if語句 if expressino then code block elif expression then code block else code block fi fi 比較整 數a 和b是否 相等 if a b 也 可 用 eq 判斷整 數a是否 大於整數 b if a gt b 比較...

shell程式設計二

同makefile一樣,符號 被用作注釋,也就說shell在解析該指令碼時會忽略這一行,但是 例外。如果需要將多個命令一起執行,可以將這些命令放在同一行,使用分號分割即可,例如 bin bash date whodate命令首先被執行,然後是who命令。通常我們需要顯示一些資訊,可以使用echo命令...

shell程式設計 (二)

雜亂模組 上一次的結果碼 對指令碼進行檢測語法錯誤 bash n shell.sh 指令碼 bash x shell.sh 指令碼,單步執行 date s 顯示當前秒數 timedays 提前退出指令碼 exit stat 獲取檔案屬性 一 shell中實現算術運算 a 2 b 5 1 let a ...