shell、perl和python的简单

发布时间:2019-09-11 07:42:51编辑:auto阅读(1649)

    自己总结的shell、perl和python的简单对比,欢迎交流!
     
    【输出】
    Shellecho "hello,world"
    Perlprint “hello,world”
    Pythonprint "hello,world"
    【变量定义】
    Shell
    name=oudemen     echo $name
    perl:

    $name 标量   print $name

    @names 数组
    %name 哈希变量
    Python:
    name=oudemen       Print name
    name=[] 普通链表,元素可变
    name=()固定数组,元素个数不可变
    name={m,n} 哈希数组
    【子程序/函数】
    Shell

             function 函数名()

             {

                       语句块;

                       Return();
             }

    调用函数名 arg1,agr2,…

    perl:

             sub 子程序名{

                       my ($参数1$参数2$参数3)=@_;

                       语句块;
                       Return(返回值);
             }

    调用子程序 &子程序名

    Python:

             def 函数名(arg1,arg2,…argn):

              ……(注意,一定要有缩进[空格或者tab])
              ……
             Return(x)

    调用函数         函数名(arg1,arg2,…argn)

     
    if条件判断】
    Shell

             if [条件表达式]

             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、数组或者字符串等
                       语句块(此行要缩进)
     
     

关键字