Python 脚本能完全代替 shell 脚本的工作吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
superPershing
V2EX    编程
  •  
  •   superPershing 2017-04-24 15:01:21 +08:00 9591 次点击
    这是一个创建于 3166 天前的主题,其中的信息可能已经有所发展或是发生改变。

    shell 的不少工作都能由 Python 来代替(个人愚见。。),那么在日常开发中,在 linux 下能完全用 Python 代替 shell 编程吗?请各位大佬来打击我的说法,让菜鸟开阔一下眼界。

    25 条回复    2017-04-25 09:46:37 +08:00
    Finest
        1
    Finest  
       2017-04-24 15:03:05 +08:00
    可以
    superPershing
        2
    superPershing  
    OP
       2017-04-24 15:04:23 +08:00
    @hand515 那是不是说在某种程度上没有学 shell 的必要了?
    jtsai
        3
    jtsai  
       2017-04-24 15:06:03 +08:00   1
    @superPershing 学 shell 是学 shell 的思想,怎么跟 liunx 打交道。不学 shell 你也不知道怎么用 Python 跟 linux 打交道
    holyghost
        4
    holyghost  
       2017-04-24 15:06:57 +08:00   1
    @superPershing 当然

    以前是 perl 在某种程度上承担了替代 shell 脚本的功能(当然 perl 自己说初衷是为了搞死 awk 和 sed ),现在是 python
    BOYPT
        5
    BOYPT  
       2017-04-24 15:10:13 +08:00
    (这就是你不学习 shell 的借口嘛!
    FunctionOne
        6
    FunctionOne  
       2017-04-24 15:12:55 +08:00
    #! /usr/bin/env python

    这个……
    FunctionOne
        7
    FunctionOne  
       2017-04-24 15:13:26 +08:00
    这个谁来解释呢?
    SuperMild
        8
    SuperMild  
       2017-04-24 15:16:26 +08:00   1
    不仅 Python ,甚至用 Java 都可以,有人这样做了:
    https://www.teamten.com/lawrence/writings/java-for-everything.html
    bozong
        9
    bozong  
       2017-04-24 15:19:41 +08:00
    Finest
        10
    Finest  
       2017-04-24 15:21:10 +08:00
    @superPershing

    不学 shell ,你在 linux 下的工作效率会下降很多
    heiybb
        11
    heiybb  
       2017-04-24 15:24:11 +08:00 via Android
    @bozong 这个回复意义何在…
    jinghangdayunhe
        12
    jinghangdayunhe  
       2017-04-24 15:24:25 +08:00
    @bozong 啥好东西?
    imn1
        13
    imn1  
       2017-04-24 15:25:36 +08:00
    “完全”是不能的,除非你想降低效率

    例如
    cat text.txt

    ls ../*.txt

    python 如何提高效率
    tammy
        14
    tammy  
       2017-04-24 15:31:28 +08:00
    我想说 python shell 也是 shell 啊,楼主你说的是 posix shell?
    bozong
        15
    bozong  
       2017-04-24 15:32:59 +08:00
    @heiybb #11
    @hand515 #10 Ctrl+V 按快了。 也删不了。
    kmyzzy
        16
    kmyzzy  
       2017-04-24 15:37:42 +08:00   1
    试试 xonsh ,支持 shell 命令,也支持 python 语法
    Marfal
        17
    Marfal  
       2017-04-24 15:43:09 +08:00
    @bozong #15 微博图床的弊端:不能删 hhh
    lucifer9
        18
    lucifer9  
       2017-04-24 15:45:20 +08:00
    绝对可以吧,如果有不行的,请呼叫 os.system
    geelaw
        19
    geelaw  
       2017-04-24 16:02:05 +08:00
    这俩玩意儿难道不是平凡地互相归约么?互相调用并不困难吧
    dacapoday
        20
    dacapoday  
       2017-04-24 18:15:23 +08:00   2
    更完善的说是用 ipython 代替 shell ,而且 ipython 中 !开头的语句当做 shell 执行,从而兼顾 shell 便利和 python 的强大。
    xliao
        21
    xliao      2017-04-24 18:24:47 +08:00 via iPhone
    集多不压身!我就想问一下大家三个字母的 top 快还是 import os.system xxxxx 快?
    fisher335
        22
    fisher335  
       2017-04-24 21:27:53 +08:00 via iPhone
    你用 python 这个 netstat 命令嘛!
    mingyun
        23
    mingyun  
       2017-04-24 22:55:10 +08:00
    crontab 怎么替代
    privil
        24
    privil  
       2017-04-25 01:10:22 +08:00 via iPhone
    让 shell 的归 shell , python 的归 python 。这样或许是极好的
    mN71eOOprFyMsnPx
        25
    mN71eOOprFyMsnPx  
       2017-04-25 09:46:37 +08:00   1
    Python 完全代替 Shell 脚本是没问题的。

    但是, Python 不能代替日常使用的 Shell 命令。

    这点要搞清楚。一定要记住,别用 Shell 命令写较长的脚本就是。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1464 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 16:48 PVG 00:48 LAX 08:48 JFK 11:48
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86