久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Bash小技巧(慣用法)

 sailorhzr 2012-07-03

Bash小技巧(慣用法)

退出碼判斷(命令執(zhí)行成功與否的判斷)

在Bash腳本中,,我們經常要先執(zhí)行某個命令行,,然后判斷它是否執(zhí)行成功,,這時我們要對它的退出碼進行判斷,。羅嗦一些的寫法如下:

Bash代碼  
  1. if [ $? -eq 0 ]     
  2. then     
  3.    echo "Success"     
  4. fi    
 

簡潔的寫法如下:

Bash代碼  
  1. [ $? -eq 0 ] && echo "Success"    

 

條件判斷的簡單寫法

又如,,判斷是否有某個目錄,,如果沒有就終止腳本執(zhí)行,羅嗦一些的寫法如下:

Bash代碼  
  1. if [ ! -d "$DIR" ]; then   
  2.     exit 1  
  3. fi  
 

簡潔的寫法如下:

Bash代碼  
  1. [ -d "$DIR" ] || exit 1  

 

查找字符串

好多人習慣上這樣寫:

Bash代碼  
  1. cat /etc/passwd | grep root  

其實下面的寫法更好,,不需要執(zhí)行cat命令、不需要管道線:

Java代碼  
  1. grep root /etc/passwd  

 

here document的寫法

一般人都這樣寫:

Bash代碼  
  1. if true; then   
  2.     cat >some.txt <<EOF   
  3. 123  
  4. 345  
  5. 567  
  6. 789  
  7. EOF   
  8. fi  
 

這樣寫,最后那個EOF就要頂格寫,,破壞了程序應有的縮進格式,最好如下寫法:

Bash代碼  
  1. if true; then   
  2.     cat >some.txt <<-EOF   
  3.         123  
  4.         345  
  5.         567  
  6.         789  
  7.     EOF   
  8. fi  
 
注意EOF前面的減號,數據前面都用制表符,,不能用空格。

讀取文件的第一行

很簡單:

Bash代碼  
  1. head -1 file.txt  
 

如果用sed來實現,可以是:

Bash代碼  
  1. sed -n '1p' file.txt  
 

但上面這個命令會導致整個文件都會讀取一遍,,對于大數據量的文件效率實在不高。如果能夠在讀取完了1行之后,,就不再讀取呢,下面的命令行可以做到:

Bash代碼  
  1. ed -n '1p;1q' file.txt  

檢索指定id的用戶名

通常想到的方式是:

Bash代碼  
  1. grep 502 /etc/passwd | cut -d: -f1    

 

或者這樣:

Bash代碼  
  1. grep 502 /etc/passwd | awk -F":" '{print $1}'    

 

其實一條awk命令就可以做到,不需要用到管道線:

Bash代碼  
  1. awk -F":" '$3==502{print $1}' /etc/passwd    

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內容中的聯系方式,、誘導購買等信息,謹防詐騙,。如發(fā)現有害或侵權內容,,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多