Shell腳本基礎練習

腳本編程能力是作為運維工程師不可或缺的一項基本技能,各種系統的運維,如果完全靠命令行一條一條命令來執行,工作效率可想而知,而腳本卻可以將完成一定功能的各個命令依據一定的流程控制,邏輯判斷去完成某種功能,提升工作效率。學習shell腳本,光學習理論是遠遠不夠的,所以在學習中要多多練習,下面就看一些關于shell腳本基礎的練習

(1) 編寫腳本/root/bin/sumid.sh,計算/etc/passwd文件中的第10個用戶和第20用戶的ID之和

Shell腳本基礎練習

$1、$2表示的是位置變量,作用是在腳本代碼中通過命令傳遞給腳本的參數。在這里定義里兩個變量UID_10UID_20 ,用來存儲某個用戶的uid,在給變量賦值的過程中,可以引用命令執行的結果,使用管道符過濾出想要的結果,賦值給變量。

Shell腳本基礎練習

在執行腳本的時候,輸入兩個位置變量參數,在執行時,腳本代碼就會調用這兩個參數,實現想要完成的操作。使用位置參數,不僅可以計算第十個和第二十個用戶的uid之和,還可以計算任意兩個用戶的uid之和,只要在執行腳本時輸入想要查詢第幾個用戶,就可以完成。

(2)編寫腳本/root/bin/sumspace.sh,傳遞兩個文件路徑作為參數給腳本,計算這兩個文件中所有空白行之和

Shell腳本基礎練習 

Shell腳本基礎練習

傳遞兩個文件路徑參數$1、$2 , 在執行腳本代碼中設置兩個變量表示兩個文件的空白行數,在給變量賦值時調用命令執行的結果,在賦值時支持正則表達式。

(3)編寫腳本/root/bin/sumfile.sh,統計/etc, /var, /usr目錄中共有多少個一級子目錄和文件

Shell腳本基礎練習

Shell腳本基礎練習

三個位置參數表示目錄名,使用ls  -A 過濾掉當前目錄“.”和上級目錄“..,這樣顯示的就只有一級子目錄和文件了。

(4)編寫腳本/bin/per.sh,判斷當前用戶對指定的參數文件,是否不可讀并且不可寫

 Shell腳本基礎練習Shell腳本基礎練習Shell腳本基礎練習

-r filename 是用來判斷文件是否可讀,可讀時為真,-w filename是用來判斷文件是否可寫,可寫時為真。 “!”后加命令表示“非”,所以腳本執行的結果是當“[  ]”中為真時,輸出不可讀不可寫,當為假時,輸出顯示該文件可讀或者可寫。

(5)編寫腳本/root/bin/excute.sh ,判斷參數文件是否為sh后綴的普通文件,如果是,添加所有人可執行權限,否則提示用戶非腳本文件

Shell腳本基礎練習 

Shell腳本基礎練習 

定義變量var1 因為輸入的位置變量$1是一個文件的路徑,所以使用basename命令用來取出輸入的路徑的基名。

原創文章,作者:Melissa,如若轉載,請注明出處:http://www.www58058.com/83670

(2)
MelissaMelissa
上一篇 2017-08-05 20:34
下一篇 2017-08-05 20:41

相關推薦

  • keepalived+varnish+haproxy+LNAMP

      nfs: 192.168.1.40 rp1: 192.168.1.41 rp2: 192.168.1.42 mariadb: 192.168.1.43 web1: 192.168.1.110 web2: 192.168.1.111 app1: 192.168.1.112 app2: 192.168.1.113 實驗效果:用keepalived高…

    2018-02-18
  • 網絡班21期第四周作業

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。          mkdir /home/tuser1        &n…

    Linux干貨 2016-08-22
  • 話說CentOS6的啟動流程

    1.按下開機按鈕,電腦的主板通電,電腦開始加電自檢(POST,Power On and Self Test),測試主機的硬件是否滿足開機的要求. 2.加載主板上的BIOS(Base Input/Output System,基本輸入輸出系統),BIOS會加載用戶設定的第一個可開機設備.,這里我們只說硬盤的加載. 可以按下鍵盤上的Esc或者是F2或者是Del鍵,…

    Linux干貨 2017-05-14
  • 磁盤陣列(RAID)簡介

    資料 RAID(Redundant Arrays of Inexpensive Disks 廉價磁盤冗余陣列)即磁盤陣列,磁盤陣列是由多個價格比較便宜的磁盤組合成的一個容量巨大的磁盤組,其原理是利用數組方式來制作磁盤組,配合數據分散排列的設計,配合數據分散排列的設計,提升數據的安全性。它把數據分別存放在多個硬盤上,輸入輸出操作能以平衡的方式交疊,改良性能,因…

    Linux干貨 2017-04-17
  • sed使用小結

    sed使用小結 Stream EDitor  行編輯器       sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”( pattern space),接著用sed命令處理緩沖區中的內容,處理完成后,…

    Linux干貨 2016-08-12
  • Linux發展史

    獨白:    先來說說我對Linux的認識吧,用一個成語形容:狗屁不通,想了一下,文明社會還是和諧點比較好,算是聞所未聞吧。15年初從朋友那得知Linxu,沖著他那十幾K的工資還是挺心動的,說實在很仰慕他,有點計算機基礎,自學兩個月出山,當時月薪8k;而我還是拿著3,4k的工資,也沒什么本領,于是找他要了些有關視頻資料,也開始了自學之路,…

    Linux干貨 2017-04-08
欧美性久久久久