位置變量;if;for循環

向腳本傳遞參數就是用位置參數變量實現

傳遞給命令的參數稱為位置參數  ls  /etc/var

Myscript.sh  argu1 argu2 ….${10}  ${11}…

  引用方式 :$1就是引用整個腳本位置參數的第一個,第一個會自動保存在$1

             $2就是引用整個腳本位置參數的第二個,第二個會自動保存在$2

         ….

blob.pngblob.png


輪替;

Shft [n]:一次輪替n個參數

blob.png

blob.png


上面例子的引申

blob.png

blob.png


練習

寫一個腳本,通過命令傳遞兩個文本文件路徑給腳本,計算其空白行數之和

blob.png
blob.png


特殊變量:

  $0  :所執行的腳本文件路徑本身

blob.pngblob.png

$#  :看傳了多少個參數

blob.pngblob.png

$*   :所有參數,ni  wo  ta

$@  :所有參數,ni wo ta

 

練習,通過命令傳遞兩個文本文件路徑給腳本,計算

其空白行數之和,如果給的路徑小于兩個,提示:至少得輸入兩個路徑,并且退出

blob.pngblob.png


過程式編程語言的代碼執行順序:

  順序執行:逐條執行,一個挨一個

  選擇執行:每一種編程語言都會用到

      代碼有一個分支:條件滿足時,才會執行

      代碼有兩個或以上的分支:只會執行其中一個滿足條件的分支

  循環執行

     代碼片段(循環體)要執行01或多個來回

 

選擇執行:

1)&& , ||

 (2) if語句:可嵌套

 (3)case語句:簡化多分枝的if語句

      ·單分支的if語句

           if  測試條件;  then (如果測試條件為真,那么就怎么怎么)(此時測試條件后面要加”;“或者不加“;”就把后面的then單獨換行寫

               If-true代碼分支

           fi 結束

 

 

      ·雙分支的if語句

           if  測試條件;  then

               If-true條件為真時執行的分支,分支里可以有n個語句

           else

               If-false條件為假時的分支

          · fi 結束

 

     ·多分枝的if語句(測試條件不光有真假,還有如果如果如果否則)

           if  測試條件1;  then

             條件1為真分支,代碼執行

           elif 測試條件2; then

 

              條件2為真分支

           elif 測試條件3then

              條件3為真分支

           …

           elif 測試條件n; then

              條件n為真分支

           else

              所有條件均不滿足時的分支

           fi

        

          注意:即便多個條件可能同時都能滿足,分支只會執行其中一個,哪個首先測試為真就執行哪個。如果第一個為真就執行第一個,后面的不考慮,如果所有都不為真,就執行else

          注意:if語句可嵌套

 

 

練習: 單分支

通過參數傳遞一個用戶名給腳本,此用戶不存在時則添加之

blob.pngblob.png


練習:如果用戶不給參數,提示:要輸入信息,并給2的返回值

blob.png

blob.png


練習:雙分支

  如果用戶存在,提示:用戶已經存在,否則添加

blob.png
blob.png



練習:多分枝

腳本參數傳遞一個文件路徑給腳本,判斷此文件的類型

blob.png

blob.png

練習:多分枝

1,腳本參數傳遞一個文件路徑給腳本,此參數為用戶名

   根據其ID號來判斷用戶類型

   0:管理員

   1-499:系統用戶

   500+:登錄用戶

blob.pngblob.png

blob.pngblob.png

2,寫一個腳本

 (1)列出如下菜單給用戶

   disk)show disks info

   Mem)show memory info

   Cpu )show cpu info

  *)quit

 (2)提示用戶給出自己的選擇,而后顯示對應其選擇的相應系統信息

blob.png

練習:1,通過命令行給定兩個數字,輸出其中較大的數值

blob.png

blob.png

循環執行:將一段代碼重復執行0次,1次或多次

   兩個關鍵要點

        1,進入條件:什么時候執行,要不要執行,條件滿足時,才進入循環

        2,退出條件:每一個循環都應該有退出條件,以有機會退出循環

  

Bash腳本的三種循環方式

   1,for    2,while    3,until23幾乎沒什么區別,除了進入和退出的條件是相反的)

 

   For循環的兩種格式

     1,遍歷列表

     2,控制變量

 

   遍歷列表:

      for VARAIBLE in LIST;do

          循環體

      Done

 

進入條件:只要列表有可用元素,即可進入循環

退出條件:列表中的元素遍歷完成

 

LIST的生成方式

  1,直接給出

  2,整數列表

      (a{start..end} 自動展開

       (b) seq [start [step]] end

          seq 10就是1-10     

          seq 5  10就是5-10  

          seq 1 2 10就是奇數列表  1 3 5 7 9

          seq 2 2 10就是偶數列表  2 4 6 8 10

  3,返回列表的命令,例如ls  cat

  4,glob(通配)

  5,變量引用

     $@  $*

  …

 

blob.png

blob.png

/tmp下創建10個臨時文件,叫f1f10

blob.png

blob.png

100以內所有正整數之和

blob.png

blob.png

blob.png

blob.png

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

(0)
wutianyouwutianyou
上一篇 2016-08-15 09:25
下一篇 2016-08-15 09:25

相關推薦

  • N28 第三周【1】:grep和文本處理工具的使用

    grep一些練習 1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 [root@localhost ~]# who |cut -d” ” -f1 |sort -u root 2、取出最后登錄到當前系統的用戶的相關信息。 [root@localhost ~]# last |cut -d” ” -f1|head -1 |…

    Linux干貨 2017-12-19
  • Linux命令的別名與管道命令的詳解

    Linux中命令的別名與管道命令的詳解 命令別名 在使用和維護liunx時,將會使用大量的命令,而一些命令加上參數時輸入比較繁瑣,此時我們可以定義一個別名來代替繁瑣的命令。 系統定義的別名 可以輸入 alias 命令查看系統中已經定義好的命令的別名; [root@localhost ~]# alias alias cp=’cp -i’ alias egrep…

    Linux干貨 2018-03-03
  • Linux 啟動流程

    Linux啟動流程 POST–>Boot Sequence–>MBR–>Grub–>Kernel(initramfs)–>rootfs–chroot(根切換)–>/sbin/init–>RunLevel–&gt…

    Linux干貨 2016-06-09
  • 4

    1;復制/etc/skel目錄為/home/tuinser1, 要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 #   install -d -m 700 /etc/skel /home/tuser1  #  &nbsp…

    Linux干貨 2017-01-16
  • N25期第七周作業

    創建一個10G分區,并格式為ext4文件系統   要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳 fdisk /dev/sdb # size 10G type 83 mke2fs -t ext4 -b 20…

    Linux干貨 2017-02-28
  • N25-第三周作業

      alias NAME='COMMAND'           定義命令的別名—對當前用戶有效  un為解除別名 Which   查看命令別名 Whereis    查看程序的文檔和源碼路徑(-b &nbs…

    Linux干貨 2016-12-18
欧美性久久久久