shell程式設計之Sed (函式與除錯)

2021-10-07 19:54:28 字數 1319 閱讀 1456

shell函式應用

函式定義格式

[function] 函式名()

其中 [ function ] 是可選的,表示該函式的功能(可省略)

[return x]的作用是當命令序列執行完後返還系統乙個值

例:

函式寫的計算器

shell指令碼除錯

sh [-nvx] 指令碼名

-n:不會執行指令碼,僅查詢語法是否有問題

-v:執行指令碼時,先將指令碼內容輸出然後執行指令碼,如果有錯,也會給出提醒

-x:將執行的指令碼內容輸出到螢幕上

sed工具sed用法示例插入

在root行前輸出hello

sed '/root/i hello' /etc/passwd

在root行下一行輸出hello

sed '/root/a hello' /etc/passwd

刪除

刪除最後一行

sed '$d' /etc/passwd

刪除空行 sed '^$' /etc/passwd

刪除root行

sed '/root/d' /etc/passwd

刪除不包含root行

sed '/root/!' /etc/passwd

替換

s/舊/新/g

s/^/#/ 每行行首插入#號

1,10y/root/root/ 將第1-10行中的root替換為root

遷移

將包含root的行遷移至末尾

sed '/root/;$g' /etc/passwd

h表示儲存當前模式到乙個緩衝區,g表示取出儲存的模式

sed '/root/w file' /etc/passwd

將包含root的行另存為檔案file1

將包含root的行遷移至末尾

sed '/root/;$g /etc/passwd'

將第1-5行內容遷移至末尾

sed '1,5;$g' /etc/passwd

如果想直接修改檔案內容

加 -i 就行

shell指令碼程式設計之sed

sed 選項 指令 動作 檔案 n 使用安靜 silent 模式。在一般 sed 的用法中,所有來自 stdin 的資料一般都會被列出到終端上。但如果加上 n 引數後,則只有經過sed 特殊處理的那一行 或者動作 才會被列出來。f 直接將 sed 的動作寫在乙個檔案內,f filename 則可以執...

SHELL程式設計之case與函式

使用case語句改寫if多分支可以使指令碼結構更加清晰 層次分明 針對變數不同取值,執行不同的命令序列 case語句結構如下 case 變數值 in 模式1 命令序列1 模式2 命令序列2 預設命令序列 esac 1 bin bash 2 read p 請輸入乙個字元 key 3 case key ...

shell程式設計之函式

shell函式的本質是一段可以重複使用的腳步 這段 被提前編寫好了,放在了指定的位置,使用時直接呼叫即可 1 定義函式 可以帶function fun 定義,也可以直接fun 定義,不帶任何常數 方法一 function name 方法二 name function 是shell中的關鍵字,專門用來...