最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • python和shell像吗

    正文概述    2020-09-23   226

    python和shell像吗

    python和shell都是我们经常使用的脚本语言,平时python主要用来写一些小型的任务,shell则在使用liunx系统部署任务的时候用的比较多,由于两者有一些相似之处,时间长了容易混淆,所以在这里给大家介绍一下两者的用法区别。

    变量

    python定义和使用只需要使用变量名,例如:

    var=“hello”
    print var
    # hello

    shell定义变量只需要变量名,而使用变量的值则需要加$符号,例如:

    var="hello"
    echo $var
    # hello

    数组的定义

    python中没有数组的概念,但是有list,tuple,dict等可以代替其功能,声明一个list并使用其中的一个元素,如下:

    numbers=[1,2,3,4,5]
    print numbers[0]
    # 1

    shell中只有一维数组,其声明和使用方法,如下:

    numbers=(1 2 3 4 5)
    print ${numbers[0]}
    # 1
    #返回所有的值用
    print ${numbers[*]}
    # 1 2 3 4 5

    注释

    python和shell都可以是用#号添加单行注释,python可以使用”’注释”’添加多行注释。

    相关推荐:《Python基础教程》

    逻辑判断

    条件的定义

    在python中,除了所有的空值被认为False外所有的值都被解释为真True,这里的空值包括:None,0,”“,(),{},[]和False,下面是例子。

    其他的由比较运算符进行比较支持,其中比较特殊的操作符有:

    * x is y x和y是同一个对象

    * x is not y

    * x in y x在y集合中

    * x not in y

    逻辑预算法用and,or,not.

    而shell的理念大不相同,它使用test命令来进行条件测试,它通常写成[ condition ]的形式,注意方括号两边都要有空格,它支持三类测试:

    * 数值比较,需要用-eq,-gt来代替==,>

    * 字符串比较,可以用=,需要用-n之类的短命令,比如-n str来判定str长度是否非零

    * 文件比较,需要用短命令,例如-e file判断文件是否存在

    逻辑运算符&&,||来连接不同的[ condition ]

    另外,高级的数学表达式推荐使用(( expression ))逻辑判定,可以使用自增++,位移运算符<<,位运算符&,逻辑与&&等等

    高级的字符串判定使用[[ expression ]]逻辑判定,可以用类似于正则表达式如[[ $teststr== r* ]]判定以r开头的字符串

    shell的数值运算推荐使用$[expression]的方式计算,浮点数的计算使用echo “expression”| bc的方式获取计算值

    if else

    python中的if else使用方式如下,条件语句后加冒号,并且以缩进划分语句块

    if condition:
        statement
    elif condition:
        statement
    else:
        statement

    shell中则不同,其if else使用方式如下,它使用then和elseif或fi来界定语句块,理论上不需要缩进

    if [ condtion ]
    then
     statement
    elif [condtion]
    then
     statement
    else
     statement
    fi

    for循环

    python的for循环使用如下,仍然用缩进划分语句块

    for item in sequence:
        statement

    shell中for的使用方式类似

    for item in list
    do
    statement
    done

    其中shell取item的分隔符全局变量为IFS(internal field separator),其默认值为空格,制表符,换行符,所以如果需要按行处理而忽略空格的话需要改变IFS的值。

    另外shell还支持c语言形式的for循环,它使用双小括号来完成,形式如下:

    for (( i=1; i<=10;i++))
    do
     statement
    done

    while循环

    python的while写法,如下:

    while condition:
        statement

    shell的while写法,如下:

    while [ conditon ]
    do
     statement
    done

    异常处理

    python的异常处理方式

    try:
        statement
    except:
        statement
    finally:
        finalStatement

    shell中没有相应的异常处理机制,只有每条命名的错误输出描述符2,可以通过2>&1将错误输出重定向到标准输出

    文件操作

    python使用open函数,其有读写模式有只读r,只写w,添加a

    myfile=open("filename","r")
    myfile.readlines()
    myfile.close()
    with open("finename","w") as myfile:
        myfile.write("line\n")

    shell读取文件的内容使用命令来读取,然后使用管道或者重定向进行输入处理,常用的命令有:

    1. cat filename 读取文件的全部内容

    2. tail -n 2 filename读取尾两行

    3. head -n 2 filename读取前两行

    一个经典的问题,读取一个文件中的每一行做处理,使用python很简单。

    with open("filename","r") as myfile:
        for line in myfile.readlines():
            print line

    使用shell

    cat filename|while read line
    do
    echo $line
    done
    #或者
    IFS='\n'
    for line in `cat  filename`
    do
    echo $line
    done

    函数

    python的函数如下形式:

    def functionname(params):
        '函数文档'
        statement
        return value

    其中函数文档可以通过functionname.doc获得

    shell中函数形式

    function functionname {
        commands
        return value
    }

    使用变量获取返回值,参数通过函数functionname param1 param2的方式传递,通过$1,$2的方式取出第一第二个参数,$#为参数数量,$*为所有参数。


    起源地下载网 » python和shell像吗

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元