歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> SHELL編程 >> shell編程詳解(二)

shell編程詳解(二)

日期:2017/3/3 11:27:40   编辑:SHELL編程

文件測試:

-e file:測試文件是否存在

-f file:測試文件是否為普通文件

-d file:測試指定路徑是否為路徑

-r file:測試當前用戶對指定文件是否有讀權限

-w file:測試當前用戶對指定文件是否有寫權限

-x file:測試當前用戶對指定文件是否有執行權限

測試shell是否有語法錯誤

bash -n xx.sh:能夠見到判斷腳本語法是否有錯誤

bash -x xx.sh:單步執行,用於腳本調試

定義腳本退出狀態碼:

exit:退出腳本

exit n: 0表示正常退出,1-255表示錯誤退出

如果腳本沒有明確定義退出狀態碼,那麼最後執行的一條命令的退出碼即為腳本的退出狀態碼

特殊變量:

$?:上一個命令退出狀態

$#:參數的個數

$*:參數列表

$@:參數列表

位置變量:shift

sed用法

sed:Stream Editor,行編輯器,默認不編輯原文件,僅對模式空間中的數據處理

sed [option] 'AddressConmand' file...

-n:靜態模式,不再默認顯示模式空間的內容

-i:直接修改原文件

-e script -e script:可以同時執行多個腳本

-f sedfile:可以將多個腳本放在一個裡面

sed -f sedfile file

-r:表示使用正則表達式

Adress:

1、StartLine,EndLine

比如:1,100

$:表示最後一行

2、/REGEXP/

比如:/^root/

3、/pattern1/,/pattern2/

第一次被pattern1匹配到的行開始,至第一杯pattern2匹配到的行結束,這中間的所有行

4、LineNumber 指定的行

5、StartLine,+N

從Startline開始,向後的N行

Command:

d:刪除符合條件的行

p:顯示符合條件的行

a \string:在指定的行後面追加新行,內容為string

\n:可以用於換行

i \string:在指定的行前面添加新行,內容為string

r FILE:將指定的文件的內容添加至符合條件的行處

w FILE:將地址指定的范圍內的行另存至指定的文件中

s/pattern/string/:查找並替換,默認只替換每行中第一匹配被模式匹配到的字符串

加修飾符:

g:全局替換

i:忽略大小寫

s///:也可以用s###,s@@@

&:引用模式匹配整個串

例如:

l..e:like ->liker

love ->lover

sed 's#\(l..e\)#&r#g' xx.txt 或者 sed 's#\(l..e\)#\1r#g' xx.txt

本文出自 “忘記過去” 博客,請務必保留此出處http://xujingbo.blog.51cto.com/4633099/1826847

Copyright © Linux教程網 All Rights Reserved