Linux指令檔的產生

來源:互聯網
上載者:User
一、指令檔的產生 #! /bin/bash          操作命令 #注釋   a 、指令檔的許可權,要求指令檔必須為具有可執行權 限。          chmod 755  指令檔名 

  

b、指令檔的執行,要求指令檔所在的路徑應存在於$PATH路徑中。如果不存在於該路徑中,則指令檔的執行方式為:#./指令檔名

 

字串替換命令    1、tr,常用於管道操作中。對輸出內容的特定字串進行替換。             #命令 | tr ‘原字串’  ‘替換字串’             #命令  | tr -d ‘待刪除字串’    -d刪除字串    2、按特定的字串排序            #sort [-tkn ]  檔案名稱                          -t 設定欄位分割符                          -k 設定選取的欄位                          -n 使用數字排序 

  

   例:#cat /etc/passwd | sort -t : -k 3 -n

 

3、過濾重複的資料--uniq             uniq用於對輸出內容中,相鄰的、重複的資料進行過濾,僅保留其中一個。             #命令 | uniq             #命令  | uniq -c 對找到的行進行統計 如果登入的BASH超過10個,則將前10個登入shell修改為csh。 

4、雙重新導向—tee文法:tee將上一個檔案的標準輸出重新導向到檔案,並將標準輸出傳遞給下一個命令。例:#cut -d:-f 7 /etc/passwd | tee file1 | cat file15、xargs :是將第一個命令的輸出結果交給xargs後所帶的命令進行處理。例:ls a* | tee file1 | xargs rm –t例2:檔案刪除提示   read -p “請輸入你要刪除的檔案:” A ;         ls $A | tee file1 | xargs rm –f | echo `cut file1`已被刪除 | echo ‘ ’ > file1 

二、結構化控制語句  --  條件控制語句 1 if -- then --fi文法:if 命令(如果命令的傳回值為0,則執行then後的命令,否則、執行fi後的命令)例:判斷一個檔案是否存在      #!/bin/bash   read -p “請輸入你要尋找的檔案:” A if ls $A    then echo “該檔案存在”         exit 0    fi      exit 5  

例2:判斷一個使用者是否存在     #!/bin/bash   read -p “請輸入你要尋找的使用者帳號:” A    if grep ^$A /etc/passwd    then   echo “該使用者存在”        exit 0     fi           exit 4 

2 if – then -- else -- fi文法:if 命令(如果命令的傳回值為0,則執行then後的命令,否則、執行else後的命令)例:檔案建立指令碼   #!/bin/bash   read -p   “請輸入你要建立的檔案:” A   if ls $A then   echo “該檔案已存在”   else       touch $A fi 

3 test 判斷文法:test 判斷條件(條件成立,則返回0,否則返回)判斷種類:               n1 -ge n2 ; n1 >= n2               n1 -le   n2 ; n1 <= n2               n1 -ne n2 ; n1 不等於!= n2               n1 -gt   n2 ; n1 > n2               n1 -lt    n2 ; n1 < n2例: #!/bin/bash     if   test 6 -gt 7    then echo “ok”    else echo “error”註:在if中可以將test替換為[ ] 文法:if   [ 判斷條件 ]判斷語句的符合檢查條件    文法:if [ 判斷條件 ] && [ 判斷條件 ] 檔案比較-d file ;檢查file檔案是否存在並且是一個目錄-e file ;檢查檔案或目錄是否存在(好用)-f file ;檢查檔案是否存在,並且是一個檔案-r file ;檢查檔案是否存在,並且是否可讀-s file;檢查檔案是否存在,並且是否不為空白-w file;檢查檔案是否存在,並且是否可寫入-x file;檢查檔案是否存在,並且是否可執行 

例:輸入成績在60以下為不合格,60~80之間為合格,成績在80~90之間良好,90~100之間優秀,0以下或100以上胡扯;#!/bin/bash read -p “請輸入成績:” A      elif [ $A –lt 60 ] && [ $A –ge 0 ]         then echo “不及格”       elif [ $A –ge 60 ] && [ $A –le 80 ]         then echo “及格”       elif [ $A -ge 81 ] && [ $A –le 90]           then echo “良好”       elif [ $A –ge 91 ] && [ $A –le 100 ]          then echo “優秀”                fi注L封口規則,有幾個if 就要在後面加幾個fi。elif除外,封口時用一個就ok ) 

if 的建立特性 文法:  if ((  數字運算式  )) 

   例:IP種類判別指令碼

 #!/bin/bash A = `ifconfig eth0 | head –n 2 | tail –n 1 | cut –d : -f2 | cut –d ‘ ’ –f 1`     if (( $A >= 192 && $A <= 223 ))       then echo “C類IP”     elif (( $A <= 191 && $A >= 127 ))         then echo “B類IP”…………fi 

三、 列表定義  – case文法:case 變數名 in                   變數值1 | 變數值2 )              命令1         ……                 變數值n | 變數值n* )               命令n            esac 

例:#!/bin/bash       read –p “where are you from :” A        case $A in         beijing | shanghai )           echo “你住502房間” ;;         shanxi | hebei )            echo “你住在505” ;;         guangdong | henan )                echo “你住在510房間”        esac 

四、迴圈命令  – for for 用於建立一個值列表實現重複迴圈,每次迴圈使用值列表的一個值文法:for 變數名 in 變數值列表          do          命令1            ……        命令N     done 

例:判斷根目錄下哪些是檔案哪些是目錄       #!/bin/bash        for file in /boot/*         do          if   [ -d $file ]          then              echo “ $file is a directary”          elif [ -f $file ]           then               echo “is file”           fi        done 

C式for迴圈文法:for (( 變數名=變數值 ;匹配條件;變數操作))             do           命令1                done例:列印100個數       #!/bin/bash    for (( A=0;A<=100;A++))      do        echo $A         done 註:A=0(定義變數)A<=100(迴圈體執行條件) A++(變數操作) 

for的嵌套迴圈 例: 列印九九乘法表 #!/bin/bash     for (( L=1;L<=9;L++))        do          echo “$L* $R=`echo $[$L*$R]`”    done       done例2、列印三角形 #!/bin/bash     for ((h=1;h<=10;h++))        do        for ((sn=1;sh*2-1>=sn;sn++))        do       s=“$s `echo 0 `”      done         echo $s        s=     done 

五、 while  迴圈文法:while test判斷(當test命令的傳回值為“0”時執行迴圈體)                do                命令                         doneWhile語句允許定義多條命令,每次迴圈均執行這些命令例:#!/bin/bash       var1=10      while echo $var1          [ $var1 –ge 0 ]         do           echo   “This is ”         var1=$[$var1-1]          done 

六、until迴圈文法:until test(當test命令傳回值為非0時執行迴圈體)                  do                 命令                    done例:列印100個數        #!/bin/bash         var1=100           until   [ $var1 –eq 0 ]             do              echo   $var1                var1=$[$var1-1]                  done 

Shell指令碼樣本例1、while迴圈體,以特定的格式輸出系統中的使用者,第一個使用者是root,第二個使用者是……      #!/bin/bash               while [ $n -le 1]                 do                for test in `cut -d: -f1 /etc/passwd`                  do                  echo “第$n個使用者是:” $test                 n=$[$n+1]                 done                done

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.