文件測試:
-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