Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: 项目有人建议用python写shell脚本。。。

210 views
Skip to first unread message

猫王

unread,
Mar 17, 2011, 10:29:39 AM3/17/11
to
瞎扯吧,到时候一堆 os.system("...") 有意义么

【 在 xingxinghuo (星星火) 的大作中提到: 】
: 集群项目,需要在linux上编写大量的脚本完成一些工作,本来都是些shell脚本,有人建议全用python替换了,新的也用python写。
: 写脚本的人对python也不是很熟,请问用python实现shell脚本合适么? 或者说优缺点是什么呢? 代码短?


--

[m [1;37m※ 来源:·水木社区 newsmth.net·[FROM: 124.64.103.*] [m

星星火

unread,
Mar 17, 2011, 10:25:56 AM3/17/11
to

集群项目,需要在linux上编写大量的脚本完成一些工作,本来都是些shell脚本,有人建议全用python替换了,新的也用python写。
写脚本的人对python也不是很熟,请问用python实现shell脚本合适么? 或者说优缺点是什么呢? 代码短?
--

[m [34m※ 来源:·水木社区 http://newsmth.net·[FROM: 123.118.170.*] [m

养生修学

unread,
Mar 17, 2011, 10:29:53 AM3/17/11
to
有本书就是讲用python做系统管理,看下就明白了。

【 在 xingxinghuo (星星火) 的大作中提到: 】
: 集群项目,需要在linux上编写大量的脚本完成一些工作,本来都是些shell脚本,有人建议全用python替换了,新的也用python写。
: 写脚本的人对python也不是很熟,请问用python实现shell脚本合适么? 或者说优缺点是什么呢? 代码短?


--
一、调理肠胃,合理饮食;饮茶适量,睡前勿食。
二、每天跑步半小时,打坐20分钟。练习太极拳。
三、高效工作,劳逸结合。


[m [1;36m※ 来源:·水木社区 newsmth.net·[FROM: 211.99.222.*] [m

请输入新的昵称

unread,
Mar 17, 2011, 10:29:41 AM3/17/11
to
出这个建议的人有病。

本来有现成的脚本,能工作的情况下就没有必要替换,替换的目的是啥?为了个人喜好?

第一:公司是否有python方面的技术实力? 没有
第二:是否有不可抗拒的原因必须要替换? 没有
第三:用python替换shell是否带来巨大的好处? 没有


【 在 xingxinghuo (星星火) 的大作中提到: 】
: 集群项目,需要在linux上编写大量的脚本完成一些工作,本来都是些shell脚本,有人建议全用python替换了,新的也用python写。
: 写脚本的人对python也不是很熟,请问用python实现shell脚本合适么? 或者说优缺点是什么呢? 代码短?


--
I love cats...they taste just like chicken
If at first you don't succeed, destroy all evidence that you tried.
A conclusion is the place where you got tired of thinking.
Experience is something you don't get until just after you need it.
For every action, there is an equal and opposite criticism.
Never do card tricks for the group you play poker with.


[m [1;35m※ 来源:·水木社区 newsmth.net·[FROM: 211.101.37.*] [m

星星火

unread,
Mar 17, 2011, 10:40:22 AM3/17/11
to
想到这个我也崩溃了

【 在 stid (猫王) 的大作中提到: 】
: 瞎扯吧,到时候一堆 os.system("...") 有意义么

老鱼

unread,
Mar 17, 2011, 10:48:09 AM3/17/11
to
这个要看他们的系统管理脚本里面用到的coreutils之外的命令多不多。如果只是些cp,mv,touch,-e之类的,python确实是有优势的。特别是当脚本的规模越来越大时,sh脚本那意识流一般的代码,写完绝对不想再碰第二次。

说句题外话,lsb那一坨标准至今只定义sh脚本的规范,根本就是自绝于21世纪。

【 在 stid (猫王) 的大作中提到: 】
: 瞎扯吧,到时候一堆 os.system("...") 有意义么


--
灭绝人性啊


[m [1;33m※ 来源:·水木社区 newsmth.net·[FROM: 59.57.70.*] [m

德若水|心似舟

unread,
Mar 17, 2011, 10:49:18 AM3/17/11
to
不是吧。原话应该是指用python内部的模块来实现相应脚本的功能吧。毕竟shell需要来回调用各自独立的工具,io的消耗和任何其他内部的脚本语言不是一个概念。


【 在 stid (猫王) 的大作中提到: 】
: 瞎扯吧,到时候一堆 os.system("...") 有意义么


--
上善之水,不系之舟


[m [1;34m※ 来源:·水木社区 newsmth.net·[FROM: 115.155.106.*] [m

德若水|心似舟

unread,
Mar 17, 2011, 10:52:19 AM3/17/11
to
sh脚本写成什么样的,应该是看什么人写吧。代码风格好的shell脚本读起来还是很容易的。

【 在 hgoldfish (老鱼) 的大作中提到: 】
: 这个要看他们的系统管理脚本里面用到的coreutils之外的命令多不多。如果只是些cp,mv,touch,-e之类的,python确实是有优势的。特别是当脚本的规模越来越大时,sh脚本那意识流一般的代码,写完绝对不想再碰第二次。
: 说句题外话,lsb那一坨标准至今只定义sh脚本的规范,根本就是自绝于21世纪。


老鱼

unread,
Mar 17, 2011, 12:53:41 PM3/17/11
to
话不能这么讲。再优秀的程序员拿brainfucked写东西一样让人看不懂。不信请版上的人不查手册说说以下shell命令什么意思:

-a
-b
-c
-d
-e
-f
-g
-h

不止命令难懂,sh语言不支持面向对象编程,效率也差,一直在起进程。这么糟糕的语言居然得到广泛的应用,让我觉得很惊奇。我一直觉得那些做发行版的人很奇怪,为了改进linux启动的效率,upstart,dash都搞出来了,却没人把那一坨脚本用c重写一遍。有时候都怀疑是不是那伙人看到那一坨自己都觉得恶心,连改的心都死了才会这样。

【 在 ibex (德若水|心似舟) 的大作中提到: 】
: sh脚本写成什么样的,应该是看什么人写吧。代码风格好的shell脚本读起来还是很容易的。


--
灭绝人性啊


[m [1;34m※ 来源:·水木社区 newsmth.net·[FROM: 59.57.70.*] [m

�������ġ���������

unread,
Mar 17, 2011, 2:37:32 PM3/17/11
to
shell锟脚憋拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟叫诧拷锟斤拷统一锟缴o拷锟斤拷维锟斤拷锟皆碉拷确锟斤拷python锟斤拷太锟斤拷锟斤拷
锟斤拷锟斤拷锟斤拷锟剿斤拷锟斤拷锟斤拷锟叫碉拷shell锟脚憋拷锟斤拷python锟芥换没锟斤拷锟斤拷锟揭拷锟皆拷锟斤拷锟斤拷锟斤拷锟斤拷说锟斤拷一锟斤拷
锟斤拷锟斤拷锟斤拷遥锟斤拷锟揭诧拷锟皆革拷锟斤拷倏锟揭伙拷锟絪hell锟脚憋拷
锟斤拷 锟斤拷 hgoldfish (锟斤拷锟斤拷) 锟侥达拷锟斤拷锟斤拷锟结到: 锟斤拷
: 锟斤拷锟斤拷锟斤拷锟斤拷么锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷某锟斤拷锟皆憋拷锟絙rainfucked写锟斤拷锟斤拷一锟斤拷锟斤拷锟剿匡拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷系锟斤拷瞬锟斤拷锟斤拷植锟剿邓碉拷锟斤拷锟絪hell锟斤拷锟斤拷什么锟斤拷思锟斤拷
: -a
: -b
: ...................

--

[36m锟斤拷 锟睫革拷:锟斤拷meteo 锟斤拷 Mar 18 02:37:32 2011 锟睫改憋拷锟侥★拷[FROM: 124.14.56.*] [m
[m [1;31m锟斤拷 锟斤拷源:锟斤拷水木锟斤拷锟斤拷 newsmth.net锟斤拷[FROM: 124.14.56.*] [m

:(){ :|: &}; :

unread,
Mar 17, 2011, 3:03:02 PM3/17/11
to

�� �� hgoldfish (����) �Ĵ������ᵽ: ��
: ��������ô����������ij���Ա��brainfuckedд����һ�����˿���������������ϵ��˲����ֲ�˵˵����shell����ʲô��˼��
��Щ����ɶ������������������Ͳ�����ֿ�����������shell��̡�
: -a

: -b
: -c
: -d
: -e
: -f
: -g
: -h
: ��ֹ�����Ѷ���sh���Բ�֧����������̣�Ч��Ҳ�һֱ�����̡���ô�������Ծ�Ȼ�õ��㷺��Ӧ�ã����Ҿ��úܾ��档��һֱ������Щ�����а���˺���֣�Ϊ�˸Ľ�linux������Ч�ʣ�upstart,dash��������ˣ�ȴû�˰���һ��ű���c��дһ�顣��ʱ�򶼻����Dz����ǻ�
1��shell���ܵ�д1k��C �����ֵô��
��˵��֧�������������Զ��ˣ�Ҳû����������

--
<MD5 ���ܹ��ǩ��>


[m [1;31m�� ��Դ:��ˮľ���� newsmth.net��[FROM: 162.105.25.*] [m

老鱼

unread,
Mar 17, 2011, 4:15:18 PM3/17/11
to
嗯。test命令的参数。意思到了就可以。由这些参数的形式可见,sh脚本原本就是设计随写随扔的东西,可读性很差。可以想象,当接手脚本的人看到一堆'-a''-b''-e',肯定很想骂娘吧。

也不一定要用C,至少不能一直起进程。再说,一行shell也不见得要写1k行c,很多时候,写个函数,调用时也不过一两行的事。除了加快运行速度这个好处之外,这些函数用swig之类的工具导出之后还能为python,perl所用。更甚者,使用c或者其它高级语言来写启动脚本,可以应用编程框架,提供更多的功能(回调、权限管理、服务项依赖),统一API。好处很多很多

【 在 minux (:(){ :|: &}; :) 的大作中提到: 】
: 这些都是啥命令啊?拜托请您把命令和参数区分开了再来批评shell编程。
: 1行shell可能得写1k行C 你觉得值么?
: 再说不支持面向对象的语言多了,也没见都死掉啊。
: ...................

--
灭绝人性啊


[m [1;35m※ 来源:·水木社区 newsmth.net·[FROM: 59.57.70.*] [m

昵称不告诉你们

unread,
Mar 17, 2011, 4:24:38 PM3/17/11
to
你这是要造unix核心逻辑的反啊,会被拍死的

【 在 hgoldfish (老鱼) 的大作中提到: 】
: 话不能这么讲。再优秀的程序员拿brainfucked写东西一样让人看不懂。不信请版上的人不查手册说说以下shell命令什么意思:
: -a
: -b
: ...................

--
[1;36mMy blog~ http://yuanjie.name/ [0m
[1;32mPocketLife Wiki http://pocketlife.wikispaces.com/ [0m


[m [1;31m※ 来源:·水木社区 newsmth.net·[FROM: 210.77.27.*] [m

�dzƲ���������

unread,
Mar 17, 2011, 4:26:36 PM3/17/11
to
��Ҫ˵�ô��ܶ�Ļ����һ���Ϊ�����ϵͳ�����߶���.net��д��
��powershell����ø���ء���

�� �� hgoldfish (����) �Ĵ������ᵽ: ��

: �š�test����IJ�����˼���˾Ϳ��ԡ�����Щ�������ʽ�ɼ�sh�ű�ԭ�����������д���ӵĶ������ɶ��Ժܲ�������󣬵����ֽű����˿���һ��'-a''-b''-e'���϶���������ɡ�
: Ҳ��һ��Ҫ��C�����ٲ���һֱ���̡���˵��һ��shellҲ�����Ҫд1k��c���ܶ�ʱ��д���������ʱҲ����һ���е��¡����˼ӿ������ٶ�����ô�֮�⣬��Щ������swig֮��Ĺ��ߵ���֮����Ϊpython,perl���á������ߣ�ʹ��c��������߼�������д�����ű�������Ӧ�ñ


--
[1;36mMy blog~ http://yuanjie.name/ [0m
[1;32mPocketLife Wiki http://pocketlife.wikispaces.com/ [0m


[m [1;31m�� ��Դ:��ˮľ���� newsmth.net��[FROM: 210.77.27.*] [m

Monolithic Polymer

unread,
Mar 17, 2011, 5:46:39 PM3/17/11
to

历史遗留问题,对于可读性太差的东西,最好的办法就是不去管他,慢慢用别的的东西绕过

【 在 hgoldfish (老鱼) 的大作中提到: 】
话不能这么讲。再优秀的程序员拿brainfucked写东西一样让人看不懂。不信请版上的人不查手册说说以下shell命令什么意思:

-a
-b


-c
-d
-e
-f
-g
-h

不止命令难懂,sh语言不支持面向对象编程,效率也差,一直在起进程。这么糟糕的语言居然得到广泛的应用,让我觉得很惊奇。我一直觉得那些做发行版的人很奇怪,为了改进linux启动的效率,upstart,dash都搞出来了,却没人把那一坨脚本用c重写一遍。有时候都怀疑是不是那伙人看到那一坨自己都觉得恶心,连改的心都死了才会这样。

【 在 ibex (德若水|心似舟) 的大作中提到: 】
: sh脚本写成什么样的,应该是看什么人写吧。代码风格好的shell脚本读起来还是很容易的。


--
灭绝人性啊


--
。。。谁TMD在投胎的时候给我选了Dante Must Die模式!
。。。还好可以输作弊码:My father is Li Gang!


[m [1;36m※ 来源:·水木社区 newsmth.net·[FROM: 137.56.163.*] [m

Haides

unread,
Mar 17, 2011, 7:06:43 PM3/17/11
to
我们公司IT部门,他们的管理工具经历了shell->perl->python的历程。长远看起
来,python有他的优势。

【 在 Monolithic (Monolithic Polymer) 的大作中提到: 】
: 历史遗留问题,对于可读性太差的东西,最好的办法就是不去管他,慢慢用别的的东西
绕过
: 话不能这么讲。再优秀的程序员拿brainfucked写东西一样让人看不懂。不信请版上的
人不查手册说说以下shell命令什么意思:
: -a
: ...................

--

[m [31m※ 来源:·水木社区 http://newsmth.net·[FROM: 221.219.105.*] [m

��ˮ

unread,
Mar 17, 2011, 8:21:32 PM3/17/11
to
shell������IO��ģ�


�� �� ibex (����ˮ��������) �Ĵ������ᵽ: ��
: ���ǰɡ�ԭ��Ӧ����ָ��python�ڲ���ģ����ʵ����Ӧ�ű��Ĺ��ܰɡ��Ͼ�shell��Ҫ���ص��ø��Զ����Ĺ��ߣ�io����ĺ��κ������ڲ��Ľű����Բ���һ�����

--

[m [32m�� ��Դ:��ˮľ���� http://newsmth.net��[FROM: 218.108.13.*] [m

肯记@木水火土

unread,
Mar 17, 2011, 8:29:37 PM3/17/11
to
咱条理性。

其实很多人要用新技术,只是给自己一个学习的机会,

至于项目最终如何,并不重要,因为他是来学习的。

而且这些人经常认为,只有在项目中才能学东西,不愿意自己看书学习,做练习。

【 在 xxxss (请输入新的昵称) 的大作中提到: 】
: 本来有现成的脚本,能工作的情况下就没有必要替换,替换的目的是啥?为了个人喜好?
: 必要性和优势:
: 第一:公司是否有python方面的技术实力? 没有
: ...................

--

[m [35m※ 来源:·水木社区 http://newsmth.net·[FROM: 123.116.0.*] [m

Lv(The Last Guardian)

unread,
Mar 17, 2011, 9:30:18 PM3/17/11
to
没瞎扯吧,
关键是os.system()那括号里面的东西。
生成这东西,用python比bash有意义的多。

bash速度慢,难写难调试难测试。
小规模用用还行,大规模bash脚本写起来让人吐血了...

【 在 stid (猫王) 的大作中提到: 】
: 瞎扯吧,到时候一堆 os.system("...") 有意义么

--
用心去聆听 神灵的声音

[m [32m※ 来源:·水木社区 http://newsmth.net·[FROM: 117.25.179.*] [m

caosuwei

unread,
Mar 17, 2011, 9:31:12 PM3/17/11
to
请问如果用python替代shell,有curl,rsync,ssh,awk这些对应的工具库吗?
本来想用python的,但是这些工具的功能如果自己做,那实在是太麻烦了

【 在 haides (Haides) 的大作中提到: 】
: 我们公司IT部门,他们的管理工具经历了shell->perl->python的历程。长远看起
: 来,python有他的优势。
: 绕过
: ...................

--

[m [1;32m※ 来源:·水木社区 newsmth.net·[FROM: 59.108.43.*] [m

平静的接受失败

unread,
Mar 17, 2011, 10:00:08 PM3/17/11
to

【 在 xxxss (请输入新的昵称) 的大作中提到: 】
: 本来有现成的脚本,能工作的情况下就没有必要替换,替换的目的是啥?为了个人喜好?
: 必要性和优势:
: 第一:公司是否有python方面的技术实力? 没有
: ...................

--
[1;31mヽ∠
[1;32mヽㄊノ とス ゝ╱ヽ ヽレ ノこ ヽ/ │/
[1;33m ㄖ ごエ ン ㄗ ンめ' ヌ│キ /ろ フ│ゝ
[1;34m ︶ │ ̄ ー フ


[m [1;31m※ 来源:·水木社区 newsmth.net·[FROM: 114.249.214.*] [m

micr0cat

unread,
Mar 17, 2011, 10:49:37 PM3/17/11
to

我觉得合适。

少量,简单脚本,用 shell 有优势;

但是大量,复杂脚本,用 shell 写维护会非常困难。

是否用 Python 代替 shell,取决于你项目复杂度和规模。


【 在 xingxinghuo (星星火) 的大作中提到: 】
: 集群项目,需要在linux上编写大量的脚本完成一些工作,本来都是些shell脚本,有人建议全用python替换了,新的也用python写。
: 写脚本的人对python也不是很熟,请问用python实现shell脚本合适么? 或者说优缺点是什么呢? 代码短?


--
[1;37mCopyright (c) 1997-2011 microcat@SMTH. All rights reserved.


[m [1;35m※ 来源:·水木社区 newsmth.net·[FROM: 211.101.48.*] [m

养生修学

unread,
Mar 17, 2011, 11:38:57 PM3/17/11
to
这点俺是挺有感触,别人一个做密度修正的csh脚本,2k多行,看起来实在太难了,一行行琢磨才明白是要干什么,看来我有必要用python重写一遍了。

【 在 hgoldfish (老鱼) 的大作中提到: 】
: 这个要看他们的系统管理脚本里面用到的coreutils之外的命令多不多。如果只是些cp,mv,touch,-e之类的,python确实是有优势的。特别是当脚本的规模越来越大时,sh脚本那意识流一般的代码,写完绝对不想再碰第二次。
: 说句题外话,lsb那一坨标准至今只定义sh脚本的规范,根本就是自绝于21世纪。


--


一、调理肠胃,合理饮食;饮茶适量,睡前勿食。
二、每天跑步半小时,打坐20分钟。练习太极拳。
三、高效工作,劳逸结合。


[36m※ 修改:·structure 于 Mar 18 11:38:57 2011 修改本文·[FROM: 211.99.222.*] [m
[m [1;31m※ 来源:·水木社区 newsmth.net·[FROM: 211.99.222.*] [m

wincss

unread,
Mar 17, 2011, 11:41:28 PM3/17/11
to
brainfuck 没有ed吧

【 在 hgoldfish (老鱼) 的大作中提到: 】
: 话不能这么讲。再优秀的程序员拿brainfucked写东西一样让人看不懂。不信请版上的人不查手册说说以下shell命令什么意思:
: -a
: -b

: ...................

--
这就是巴巴爸爸、巴巴妈妈、巴巴祖、巴巴拉拉、巴巴利波、巴巴伯、巴巴贝尔、
巴巴布莱特、巴巴布拉伯!


[m [1;32m※ 来源:·水木社区 newsmth.net·[FROM: 111.165.36.*] [m

LEOSUN

unread,
Mar 18, 2011, 12:08:22 AM3/18/11
to
shell更像脚本,python更像一门面向对象语言,用起来很罗嗦。处理文本我更喜欢用perl.
如果调用关系不是那么的复杂,干嘛非得用python
【 在 xingxinghuo (星星火) 的大作中提到: 】
: 想到这个我也崩溃了

--

[m [35m※ 来源:·水木社区 http://newsmth.net·[FROM: 61.135.172.*] [m

coach

unread,
Mar 18, 2011, 12:43:41 AM3/18/11
to

Good idea. 我等下转给我们的维护部门看看。他们用Shell的脚本出错率太高,经常构建错误。


【 在 xingxinghuo (星星火) 的大作中提到: 】
: 集群项目,需要在linux上编写大量的脚本完成一些工作,本来都是些shell脚本,有人建议全用python替换了,新的也用python写。
: 写脚本的人对python也不是很熟,请问用python实现shell脚本合适么? 或者说优缺点是什么呢? 代码短?


--

[m [1;31m※ 来源:·水木社区 newsmth.net·[FROM: 59.60.10.*] [m

babam(大叔)

unread,
Mar 18, 2011, 9:26:11 AM3/18/11
to
sh 为什么要支持面向对象?

【 在 hgoldfish (老鱼) 的大作中提到: 】
: 话不能这么讲。再优秀的程序员拿brainfucked写东西一样让人看不懂。不信请版上的人
不查手册说说以下shell命令什么意思:
: -a
: -b
: ...................

--
有一伙来自乡下的土匪,乘灾年起事,借帝国主义侵略战争成气候,把道听途说的西方理论凑成蛊惑人心的教派作为指导思想,建政后吃喝嫖赌内部斗争,领袖弄死接班人,副统帅叛逃身死,折腾死几千万人仍声称自己代表人民,这就是...太平天国


[m [36m※ 来源:·水木社区 http://newsmth.net·[FROM: 221.221.20.*] [m

dequanz...@gmail.com

unread,
May 23, 2020, 2:29:05 AM5/23/20
to
On Thursday, March 17, 2011 at 7:29:39 AM UTC-7, 猫王 wrote:
> 瞎扯吧,到时候一堆 os.system("...") 有意义么
>
> 【 在 xingxinghuo (星星火) 的大作中提到: 】
> : 集群项目,需要在linux上编写大量的脚本完成一些工作,本来都是些shell脚本,有人建议全用python替换了,新的也用python写。
> : 写脚本的人对python也不是很熟,请问用python实现shell脚本合适么? 或者说优缺点是什么呢? 代码短?
>
>
> --
>
> [m [1;37m※ 来源:·水木社区 newsmth.net·[FROM: 124.64.103.*] [m

不合适。 shell脚本写不好的人 python脚本更写不好。如果是独立项目/长期维护/24小时运行程序/大量CPU运算/大量系统调用/项目组只会Python,那这个时候可以换Python写程序。

0 new messages