shell、perl和python的簡單對比

本身總結的shell、perl和python的簡單對比,歡迎交流!
 
【輸出】
Shell echo "hello,world"
Perl print 「hello,world」
Python print "hello,world"
【變量定義】
Shell
name=oudemen     echo $name
perl:

$name 標量   print $namepython

@names 數組
%name 哈希變量
Python:
name=oudemen       Print name
name=[] 普通鏈表,元素可變
name= ()固定數組,元素個數不可變
name={m,n} 哈希數組
【子程序/ 函數】
Shell

         function 函數名()shell

         {

                   語句塊;數組

                   Return();
         }

調用函數名 arg1,agr2,…less

perl:

         sub 子程序名{ide

                   my ($參數1$參數2$參數3)=@_;函數

                   語句塊;
                   Return (返回值);
         }

調用子程序 &子程序名spa

Python:

         def 函數名(arg1,arg2,…argn):命令行

          ……( 注意,必定要有縮進 [ 空格或者 tab])
          ……
         Return(x)

調用函數         函數名(arg1,arg2,…argn)字符串

 
if 條件判斷】
Shell

         if [條件表達式]it

         then

                   條件爲真command

         else

                   條件爲假command

         fi
perl:

         if(條件表達式)

         {
                   表達式爲真的語句塊;
         }

或者         表達式爲真的語句塊 if 條件表達式;

或者         條件表達式&&表達式爲真的語句塊;

 

         if(條件表達式){

                   條件表達式爲真時的語句塊;
         }else{
                   條件表達式爲假時的語句塊;
         }

或者         條件表達式?表達式1:表達式2  [若是條件表達式爲真,執行表達式1,不然執行表達式2]

 

         if(條件表達式1)

         {
                   條件表達式 1 爲真時的語句塊;

         }elsif(條件表達式2){

                   條件表達式 2 爲真時的語句塊;

         }elsif(條件表達式3){

                   條件表達式 3 爲真時的語句塊;
         }
         ……
         else{
                   因此條件表達式爲假時的語句塊;
         }
Python:

         if  條件表達式1:
                 
條件表達式1爲真時的語句塊

         elif 條件表達式2:
                 
條件表達式2爲真時的語句塊

         else:
                 
因此條件表達式爲假時的語句塊

unless 條件判斷】
Shell :無
perl:

         unless(條件表達式){

                   條件表達式爲假執行的語句塊;
         }

或者         條件表達式爲假執行的語句塊 unless (條件表達式);、

或者         條件表達式 || 條件表達式爲假執行的語句塊

 
 

         unless(條件表達式){

                   條件表達式爲假時的語句塊;
         }else{
                   條件表達式爲真時的語句塊;
         }
Python:
【循環控制--while
Shell{break 跳出循環,continue 跳出本次循環}

         While[條件表達式]

         do

                   命令行

         done

perl{ last退出循環,next終止本次循環,適用perl全部循環}:

         while(條件表達式){

                   語句塊;
         }

或者         {語句塊}while(判別表達式)

         do
         {
                   語句塊;

         }while(條件表達式) [while相比,do while保證語句塊至少執行一次]

Python{break 跳出循環,continue 結束本次循環 }:

         While條件表達式:

                   語句塊
         else:
                   語句塊
【循環控制until
Shell

         until 條件表達式

         do

                   條件爲假執行的語句塊

         done
perl:

         until( 條件表達式)

         {
                   語句塊
         }

或者         語句塊 until(條件表達式)

        
         do
         {
                   語句塊;

         }until(條件表達式)

Python:
【循環控制--for
Shell

         for((初始表達式;條件表達式;循環過程運算式));

         do

                   語句塊;

         Done
        

         for i in 文件或數組

         do

                   語句塊;

         Done
perl:

         for(初始表達式;條件表達式;循環過程運算式)

         {
                   語句塊;
         }
        

         for 標量(數組變量)

         {
                   語句塊;         
         }

         for  (數組變量)

         {
                   讀取 $_, 處理數組相關的語句塊;
         }
        

         foreach   標量(數組變量)

         {
                  語句塊 ;
         }

         foreach   (數組變量)

         {
                  讀取 $_, 處理數組相關的語句塊;
         }
Python:
         for i in range 、數組或者字符串等
                   語句塊(此行要縮進)
相關文章
相關標籤/搜索