终有一天, 我会放下所有的包袱, 按自己的意愿, 去走自己的路. 我相信人生追求的不过是, 一次无悔的旅行. 变化的生活, 只是为了更细致的体验精彩的人生...
成功团队的人才组合
英国管理学研究员雷迪思·R·贝尔宾博士,与剑桥工业培训研究所一起,对商业团队的行为进行了为期九年多的研究。以下是他们的研究成果之一。
成功团队的人才组合
文/祥 和
在罗斯·泰勒和约翰·汉弗莱合著的《成功的十大关键》一书中,详尽介绍了贝尔宾和他的同仁们有关团队建设的研究成果。他们利用自己所掌握的有关商业性格类型的知识来考察怎样的人才组合才能造就一支成功的团队,得出了以下六个结论。
合适的领导者
成功的领导者是那种天生就值得他人信赖、并且能够不带任何妒忌和猜疑来接纳所有人才的人。然而,这种接纳却是有条件的,那就是其他人必须受到其最基本的、强有力的支配,并完成他所委派的工作与任务。出色的领导者能冷静、沉着地应对别人的质疑,现实而不脱离实际,而且具有天生的自我约束的能力。他或者她总是充满热情,能够鼓动别人的情绪,给他人以前进的动力,但却并非纯粹是外向型的人,因为他们在社交关系中必须做到不偏不倚、公正超脱。
有意思的是,平均说来,成功的领导者并不比团队的其他成员更聪明或更有创造力。一般来讲,成功的领导者其智商与他的同事旗鼓相当,并非卓尔不群。那些比其他团队成员稍稍聪明一点的人不太能够胜任领导者的角色,而至于那些比其团队成员聪明很多的人则更加无法胜任。但是,你却不能依此类推:那些远远不够聪明的人也同样胜任不了领导者的角色。
研究小组一位专门分析领导者表现的成员总结说,成功的领导者“是一个极其宽容、可以倾听别人的想法,但又非常强硬、足以抵制他们的建议的人”。
拥有一个强有力的智囊人物
成功的企业有一个共同的特征,那就是他们拥有一个“智囊人物”。在贝尔宾的团队成员类型中,智囊人物是一个富有创造力、想象力、敢于突破传统的人。因而一个成功的公司需要至少一名富有创造力、聪明的成员。
贝尔宾发现,如果你不能同时具备创造力和智慧,那么创造力相对而言是两者之中更重要的,但如果一个人能同时具备这两个优点,那么这将是一个很大的优势。一个虽富有创造力、但却只具有中等智商的智囊人物很难在公司中扮演值得其他人信任的团队角色。事实上,一个表面上看上去似乎志在必得但最后功败垂成的公司其最明显的标志就是它的智囊人物未能胜任其团队角色。
另外一个不太常见的问题也引起了贝尔宾的注意,那就是智囊的创造力与团队的需要不相符合。比如,他或者她擅长文字方面的工作而团队真正缺少的却是数学能力。
智力的差异
贝尔宾发现,在那些表现最出色的公司中,其团队成员之间存在智力的差异。最理想的团队模型是有一个聪明的智囊人物,另一个聪明的成员,一个智商稍高于一般水平的领导者以及其他智力稍低于一般水平的成员。
理由是,才智过人、富有创造力的智囊人物对公司而言是一笔巨大的财富,但前提是由领导者担负最终的责任。想要取得成功,这个公司必须要有一个聪明的人,这个人能发现那些虽富有想象力、但却不太可行的建议当中的缺陷,而与此同时,领导者则起到最终的决断者的作用。这个理想的、高智商的质疑者就是“监控者—评估者”,在贝尔宾的团队成员类型中,它是一个清醒的、具有战略眼光的、有辨别能力的类型。
其余团队成员智力稍低的好处则令人费解。贝尔宾认为,与其他同事之间智力差距能促使他们去担任其他必需的团队角色。无论如何,研究人员观察到,比起那些成员智力水平相近的团队,由智力差异较大的人所组成的团队更能够齐心协力,精诚合作。
团队角色的分工
贝尔宾提到,成功团队的重要特征是其合理的角色分工。企业特别需要完美者一精整者(勤恳刻苦、认真负责的类型)和至少一名执行者(有约束力、可信赖的类型,贝尔宾最初称其为“公司职员”)。
另一个重要角色通常是资源探索者(贝尔宾称其为外向、热情的沟通者)。除了一个出色的外向型的人,如果公司还能拥有一个与之迥然不同的内向型的人,那么这个公司就能获得一种额外的平衡。关键就在于,一个成功的公司其团队成员的角色分工全面而明确,这是它赖以成功的秘诀。不同类型的成员增加了团队的多样性,也将由两个或以上的人竞争同一岗位而造成的消极矛盾减少到最低限度。
才能与职能的匹配
成功团队的另一特别标志就是其团队成员所从事的工作与其个人能力相符合。这就需要总结出一套方法来使每个人各得其所,而不是仅凭过去的经验、某次特殊的表现就断定某人必然能够一直扮演某个角色。
避免人与岗位不协调的一个有效途径就是把任务交给两人小组去完成而不是交给单个的个人。比如在处理团队的财务工作方面,有些公司会把它交给某个被认为最有经验的人去做。而在成功的团队中,它通常是由两个人共同完成的,一个人专门负责处理数据,而另外一个头脑精明的人则监督整个过程。这种变通的搭配可以发展出各种灵活的安排,也能够使个人找到与其才能最匹配的工作岗位。
对于缺陷的认识
通过自我认知,人可以弥补自己的弱点。贝尔宾也举出了几个令人印象深刻的例子,有些团队表面上似乎没有什么希望,但最终当他们意识到自己的不足并加以改进时,他们还是取得了成功。
比如,贝尔宾他们有意让一支团队全部由塑造者组成,但他们大多数人智商都不高。在贝尔宾的九种类型中,他们是富有挑战性、生气勃勃的一种类型。当这支队伍组建后,他们能马上开诚布公地面对自身的缺陷,意识到他们的危险,第一,他们可能会拿不出任何好主意,第二,他们会为每一件事情争论不休。于是,他们作出了以下对策:让最聪明的人担任正式的“智囊”,同时,他们也深知智囊人物与领导者之间的关系至关重要,因而他们让智囊人物选择他认为与之合作会最愉快的人来当领导。为了避免无休止的、没有结果的争论,他们决定对于每一个问题都投票表决。这使得他们不仅能时时拿出好主意,而且也能迅速作出决定、把握机会。结果是,这支经过精心策划而组成的团队不仅最后赢得了成功,而且还赢得很漂亮。
附录
编辑的力量
——《西岸奥美视点》2001年11月刊
2001 年 11 月初的一天下午,接近下班时间,《计算机世界》报社的办公室渐渐安静下来,忙乱了一天的"产品与技术"版记者郭平又开始赶写一篇关于飞利浦的文章。几天前,飞利浦高层人士刚刚与报社总编刘九如做了一次“与老板对话”,郭平要赶着在第二天中午截稿前将文章整理出来,她一直忙到夜里三点多,终于将文章的主体完成。
第二天一早 7 点刚过,郭平就来到办公室,恰巧九如也在,于是她将写好的稿子打印了一份拿给九如看,自己又埋头写构成“与老板对话”的另一部分“人物印象”。九如反复修改几遍后,稿件最终被送到该栏目的责任编辑吴萍手中,由她负责排版、修饰以及最后的加工。终于,文章定稿,郭平 舒了一口气,琢磨着虽然今年IT业不太景气,但自己的工作似乎是更忙碌了。
象郭平一样,服务于《计算机世界》和几乎所有的主流IT、财经、管理媒体的多数记者也是整日忙着采访和撰写,他们已经习惯了这种或许可以叫做采编一体的工作模式,从工作职能上讲,采写过程就是编辑的过程,记者主导文章的倾向还这样延续着。
但事情渐渐在起一些变化,这主要源于媒体之间的竞争 -- 新闻的数量毕竟是有限的,想要获得独家内幕已经变得极为困难,于是媒体竞争的重心自然从广度和及时性上向深度和影响力上倾斜,编辑的力量在竞争中就这样滋生并逐渐成长。大至《计算机世界》、《互联网周刊》“封面报道”,《数字时代》的“封面故事”、《新周刊》的选题策划乃至媒体的产品评测、 IT 业界年度回顾与展望等等,小至一条新闻的标题处理、版位设置、篇幅大小,无不渗透出编辑的意图 -- 无论距离西方成熟的编辑责任制有多大的差距,但国内主流媒体编辑力量的缓慢成长却一直没有停顿。
编辑的力量
《经济观察报》记者许知远曾经写过一篇《国家与教堂之争》的评论文章,他试图通过描述、分析国外成功媒体如《时代》、《纽约时报》等在经营权与编辑权上施行“国家”、“教堂”般的独立和分离来给国内的媒体介绍一些西方成熟的经验。
编辑权与经营权的此消彼长虽然不在本文想要探讨的主要话题之列,但这显然应该是媒体基本编辑理念的直观体现。编辑的理念,也即编辑方针总是与经营方针相一致,他们之间在操作上的独立、分离并不妨碍二者理念上的融合 -- 是靠内容赢得读者进而赢得广告,还是以版面换取广告但流失读者,编辑方针与经营方针的一致性往往有外在的表现。在国内媒体产业不成熟的情况下,有一些严肃媒体,比如《财经》、《 IT 经理世界》、《环球企业家》、《南方周末》、《21世纪经济报道》、《经济观察报》等等,在编辑权 的独立性上都起到了相对更遵循新闻规律、媒体规律的表率作用。
如果说媒体编辑权与经营权的问题是一个不可调和的矛盾,那么在编辑力量的另一个体现环节 -- 媒体记者与编辑的力量对比中,或许能产生更具生命力并主导媒体报道方向、整体风格的决定因素。
在为客户服务的过程中,我们有时会发现,即使一些记者出于确认数据、事实的考虑而将自己完成的稿件交由厂商最后审阅,但刊出后的文章往往与此并非完全一致,这种差异既是编辑基本职能的外在体现,也是编辑力量扩张的深层次需求 -- 是否上版,采用什么样的标题,安排在哪个版面,是否配以图片、加以短评、予以摘要等等,所有的细节处理都体现出编辑的话语权,即所谓编辑方针。编辑话语权的实行无非是使文章更能满足其特定受众的需求 -- 这其实又是来自读者力量(读者阅读倾向、习惯、爱好等等)的制衡;而读者的数量、年龄、阶层又决定着媒体的生存状态。所以,有什么样的读者需求就会产生什么样的新闻供给,编辑力量的终极目标就是最大限度地与其目标读者进行以信息为介质的情感交流与体验。
《环球企业家》致力于成长为一本“商人味道”很浓的工商新闻杂志,主编李甬在谈到其内部的编辑、记者分工时也面露难色。虽然他们也在试图建立一种编辑负责制,但国内不规范的商业环境显然还不能提供足够数量并素质优良的商业媒体从业人员,无论编辑还是记者。西方编辑负责制度的借鉴意义在于编辑(如果能称“编辑”的话)塑造并维护着刊物的灵魂,通过优化、调整众多记者采写的文章使其总体上符合媒体的定位从而形成媒体一种相对稳定的诉求风格。比方说,如果没有成熟的编辑,即使一个记者会写出可以打90分的文章,但却不能保证另一个记者不会写出只能打40分的稿件——编辑的作用就是通过他的存在来建立一种有形或无形的质量控制体系,以确保刊载的每一篇文章至少都可以达到70分以上,从而形成一种集成了的编辑力量。《经济观察报》有一句口号,叫“以工业标准建设商业文明”,其实也体现了编辑工作应该是像工业生产那样是一种职业行为,遵循一定的生产流程和操作规范,以确保产品 -- 新闻的总体质量。
《21世纪经济报道》新闻报道的标题对读者的冲击力很大,比如《福布斯内地富豪榜炮制过程大起底 独访四大黑马隐秘富贵第一次开封》、《革命性调整券商遭遇“猝死威胁”股市打假央行证监会空前“铁血”》等等,这些动态性、新闻性看上去极强的黑体标题都是编辑力量的体现。
中国加入 WTO 是最近比较热点的话题,但不同的媒体对此也有不同的切入角度。《21世纪经济报道》策划了 44 版的《入世特辑》,从几乎所有可能涉及的方面,例如政府、工业、农业、资本、文化等涉入,用强烈的新闻色彩将中国加入 WTO 背景下政府、行业/产业的动态渲染出来;《经济观察报》也推出了 12 个版的《中国入世特刊》,除了将“政府入世”作为报道重点外,还遴选了法律、农业、金融保险、电信、石油/石化、纺织、IT、汽车、零售等敏感制度或行业,通过具体案例描述、分析了这些制度、行业所面临的机遇与挑战;《数字时代》则选择了职业以及收入这个更多普通读者关心的角度,用30版的封面故事《抉择钱程》全面分析了中国入世前后的行业、城市的薪酬情况 -- 主编李二钢的话来讲,《抉择钱程》策划重点是放在了提高与读者利益的关切度上,放在了对读者的动员力上。《财经》是值得尊敬的杂志,在11月5日出版的这一期中,封面文章《中国变法》对中国入世所面临的法制变革做了描述与分析 -- 其实,大家公认的是,中国入世关键是“政府入世”,如果政府的作风、管理不“入世”,不按照国际通行的惯例制订政策、法规、宏观调控、那么其他方面都会流于空谈,这也是为什么《21世纪经济报道》和《经济观察报》都将其入世特刊中最醒目的版面聚焦于政府政策制订、法制变革等与政府行为相关领域的原因。
当然,由编辑力量所维系的质量控制体系所要确保的质量是一种综合的要求,也是媒体内部一种深层次的扩张需求,这种需求的满足既可以是一系列标题的处理,也可以是一个策划的成功,还可以是一个新角度的切入,当
媒体凭借这种深层次的编辑力量来把握自己的风格时,他离成熟也就不远了。
抗衡还是顺应?
曾经有过这样的事件,某国际知名 IT 公司主管 PR 的经理因为一家有影响的媒体将要发表一篇部分内容与事实不符的文章而威胁撤掉所有的广告,结果这家媒体不仅没有如 PR 经理所愿,反而将受到威胁的事实披露出来 -- 结果可想而知,这家媒体的声誉空前提高,而该公司也吸取教训,从此立下公关与广告完全分立的规矩。
这个案例是厂商与编辑力量抗衡的极端,不具有太多的普遍性,但它至少反映了一个事实——控制媒体的行为正遭受越来越大的失败和不齿。这种控制冲动背后显然隐藏着对媒体的一种误读,而在误读中受伤最深的往往是厂商自己。
在为客户提供服务的过程中,西岸一直试图基于对媒体的理解和传播规律的尊重,建立新型的厂商—媒体关系。时代的进步在促使媒体走向成熟、规范,编辑的力量越来越独立地表现为一种进步趋势。让客户与成长中的编辑力量相匹配、磨合,进而将客户推向编辑力量的前端,是西岸一直努力的方向。
附:《纽约时报》编辑人员结构介绍
[前言] 组织结构决定了工作方法还是工作方法决定了组织形式?这其实就像是在争论鸡、蛋先后一样。无论是否同意形式主义的观点,有一点大家尚可达成共识的就是:形式一定会影响内容--对这种影响大小的界定成了鉴别形式主义的分水岭。
刍荛之言,尧舜纳之,就当这个是攻玉的它山之石又何不可!
《纽约时报》编辑部最高的主管是执行总编辑,下面是总编辑,再下面有七位副总编辑,每一位都有一定的督导新闻部门和特别的职权。另外有两位“准”副总编辑——艺术设计及图解主管与编辑部人事与行政主管各一名。
在总编辑下面,有编辑主任和他的助理5人,这位编辑主任在副总编辑以上的主管下班后,是编辑部的最高负责人,实际上,他是夜间部的总编辑。
编辑部主要的新闻部门为国外新闻部、国内新闻部、大都会新闻部、财经新闻部、文化新闻部、科学新闻部、体育新闻部、妇女及风格新闻部、摄影新闻部等。这里所说的每一个新闻部门都是规模很大的单位。每一个部门有主任与副主任,下面有夜间部主任,主管该部门新闻之出版作业,并有电讯编辑及5至6位高级助理编辑,还有特别设计新闻编辑,他们都是编辑部的中坚编辑干部,能够对新闻进行取舍,是真正的幕后决策人。当然,每一个主要的新闻部门都有自己的编辑台,这种编辑台平均有 10 到 12 位编辑。
因此,每一个主要的新闻部门至少有20位以上的编辑,整个编辑部的编辑人数要在 200 以上。记者和特派员、评论家,以及新闻助理及书记秘书人员不在其内。另外,有关教育、宗教、法律、媒体等专业性的新闻,均有专业性主编人统筹指挥协调此种新闻的报道。
《纽约时报》要用这么多的编辑们来出版报纸,每天要在 100 万字左右的稿件资料中选出 10 万字,供给读者阅读,由此可见《时报》在新闻处理上的负责态度。
有人说,脑白金的危机公关是因为它利润率太高。然而,当我们看到众多成功赢利而迅速积累财富的企业并未遇到类似的挑战,我们反过来深省--一定是它忽视了别人不敢忽视的什么。
非常好的BASH脚本编写教程
非常好的BASH脚本编写教程
这里有个老American写的 BASH脚本编写教程,非常不错,至少没接触过BASH的也能看懂!
建立一个脚本
Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用。所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 bash的大姐,bourne shell中运行)。
如同其他语言一样,通过我们使用任意一种文字编辑器,比如nedit、kedit、emacs、vi
等来编写我们的shell程序。
程序必须以下面的行开始(必须方在文件的第一行):
#!/bin/sh
符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。
当编辑好脚本时,如果要执行该脚本,还必须使其可执行。
要使脚本可执行:
chmod +x filename
然后,您可以通过输入: ./filename 来执行您的脚本。
注释
在进行shell编程时,以#开头的句子表示注释,直到这一行的结束。我们真诚地建议您在程序中使用注释。如果您使用了注释,那么即使相当长的时间内没有使用该脚本,您也能在很短的时间内明白该脚本的作用及工作原理。
变量
在其他编程语言中您必须使用变量。在shell编程中,所有的变量都由字符串组成,并且您不需要对变量进行声明。要赋值给一个变量,您可以这样写:
变量名=值
取出变量值可以加一个美元符号($)在变量前面:
#!/bin/sh
#对变量赋值:
a="hello world"
# 现在打印变量a的内容:
echo "A is:"
echo $a
在您的编辑器中输入以上内容,然后将其保存为一个文件first。之后执行chmod +x first
使其可执行,最后输入./first执行该脚本。
这个脚本将会输出:
A is:
hello world
有时候变量名很容易与其他文字混淆,比如:
num=2
echo "this is the $numnd"
这并不会打印出"this is the 2nd",而仅仅打印"this is the ",因为shell会去搜索变量numnd的值,但是这个变量时没有值的。可以使用花括号来告诉shell我们要打印的是num变量:
num=2
echo "this is the ${num}nd"
这将打印: this is the 2nd
有许多变量是系统自动设定的,这将在后面使用这些变量时进行讨论。
如果您需要处理数学表达式,那么您需要使用诸如expr等程序(见下面)。
除了一般的仅在程序内有效的shell变量以外,还有环境变量。由export关键字处理过的变量叫做环境变量。我们不对环境变量进行讨论,因为通常情况下仅仅在登录脚本中使用环境变量。
Shell命令和流程控制
在shell脚本中可以使用三类命令:
1)Unix 命令:
虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令。这些命令通常是用来进行文件和文字操作的。
常用命令语法及功能
echo "some text": 将文字内容打印在屏幕上
ls: 文件列表
wc –l filewc -w filewc -c file: 计算文件行数计算文件中的单词数计算文件中的字符数
cp sourcefile destfile: 文件拷贝
mv oldname newname : 重命名文件或移动文件
rm file: 删除文件
grep 'pattern' file: 在文件内搜索字符串比如:grep 'searchstring' file.txt
cut -b colnum file: 指定欲显示的文件内容范围,并将它们输出到标准输出设备比如:输出每行第5个到第9个字符cut -b5-9 file.txt千万不要和cat命令混淆,这是两个完全不同的命令
cat file.txt: 输出文件内容到标准输出设备(屏幕)上
file somefile: 得到文件类型
read var: 提示用户输入,并将输入赋值给变量
sort file.txt: 对file.txt文件中的行进行排序
uniq: 删除文本文件中出现的行列比如: sort file.txt | uniq
expr: 进行数学运算Example: add 2 and 3expr 2 "+" 3
find: 搜索文件比如:根据文件名搜索find . -name filename -print
tee: 将数据输出到标准输出设备(屏幕) 和文件比如:somecommand | tee outfile
basename file: 返回不包含路径的文件名比如: basename /bin/tux将返回 tux
dirname file: 返回文件所在路径比如:dirname /bin/tux将返回 /bin
head file: 打印文本文件开头几行
tail file : 打印文本文件末尾几行
sed: Sed是一个基本的查找替换程序。可以从标准输入(比如命令管道)读入文本,并将结果输出到标准输出(屏幕)。该命令采用正则表达式(见参考)进行搜索。 不要和shell中的通配符相混淆。比如:将linuxfocus 替换为 LinuxFocus :cat text.file | sed 's/linuxfocus/LinuxFocus/' > newtext.file
awk: awk 用来从文本文件中提取字段。缺省地,字段分割符是空格,可以使用-F指定其他分割符。cat file.txt | awk -F, '{print $1 "," $3 }'这里我们使用,作为字段分割符,同时打印第一个和第三个字段。如果该文件内容如下: Adam Bor, 34, IndiaKerry Miller, 22, USA命令输出结果为:Adam Bor, IndiaKerry Miller, USA
2) 概念: 管道, 重定向和 backtick
这些不是系统命令,但是他们真的很重要。
管道 (|) 将一个命令的输出作为另外一个命令的输入。
grep "hello" file.txt | wc -l
在file.txt中搜索包含有”hello”的行并计算其行数。
在这里grep命令的输出作为wc命令的输入。当然您可以使用多个命令。
重定向:将命令的结果输出到文件,而不是标准输出(屏幕)。
> 写入文件并覆盖旧文件
>> 加到文件的尾部,保留旧文件内容。
反短斜线
使用反短斜线可以将一个命令的输出作为另外一个命令的一个命令行参数。
命令:
find . -mtime -1 -type f -print
用来查找过去24小时(-mtime –2则表示过去48小时)内修改过的文件。如果您想将所有查找到的文件打一个包,则可以使用以下脚本:
#!/bin/sh
# The ticks are backticks (`) not normal quotes ('):
tar -zcvf lastmod.tar.gz `find . -mtime -1 -type f -print`
3) 流程控制
"if" 表达式 如果条件为真则执行then后面的部分:
if ....; then
....
elif ....; then
....
else
....
fi
大多数情况下,可以使用测试命令来对条件进行测试。比如可以比较字符串、判断文件是否存在及是否可读等等…
通常用" [ ] "来表示条件测试。注意这里的空格很重要。要确保方括号的空格。
[ -f "somefile" ] :判断是否是一个文件
[ -x "/bin/ls" ] :判断/bin/ls是否存在并有可执行权限
[ -n "$var" ] :判断$var变量是否有值
[ "$a" = "$b" ] :判断$a和$b是否相等
执行man test可以查看所有测试表达式可以比较和判断的类型。
直接执行以下脚本:
#!/bin/sh
if [ "$SHELL" = "/bin/bash" ]; then
echo "your login shell is the bash (bourne again shell)"
else
echo "your login shell is not bash but $SHELL"
fi
变量$SHELL包含了登录shell的名称,我们和/bin/bash进行了比较。
快捷操作符
熟悉C语言的朋友可能会很喜欢下面的表达式:
[ -f "/etc/shadow" ] && echo "This computer uses shadow passwors"
这里 && 就是一个快捷操作符,如果左边的表达式为真则执行右边的语句。您也可以认为是逻辑运算中的与操作。上例中表示如果/etc/shadow文件存在则打印” This computer uses shadow passwors”。同样或操作(||)在shell编程中也是可用的。这里有个例子:
#!/bin/sh
mailfolder=/var/spool/mail/james
[ -r "$mailfolder" ]' '{ echo "Can not read $mailfolder" ; exit 1; }
echo "$mailfolder has mail from:"
grep "^From " $mailfolder
该脚本首先判断mailfolder是否可读。如果可读则打印该文件中的"From" 一行。如果不可读则或操作生效,打印错误信息后脚本退出。这里有个问题,那就是我们必须有两个命令:
-打印错误信息
-退出程序
我们使用花括号以匿名函数的形式将两个命令放到一起作为一个命令使用。一般函数将在下文提及。
不用与和或操作符,我们也可以用if表达式作任何事情,但是使用与或操作符会更便利很多。
case表达式可以用来匹配一个给定的字符串,而不是数字。
case ... in
...) do something here ;;
esac
让我们看一个例子。 file命令可以辨别出一个给定文件的文件类型,比如:
file lf.gz
这将返回:
lf.gz: gzip compressed data, deflated, original filename,
last modified: Mon Aug 27 23:09:18 2001, os: Unix
我们利用这一点写了一个叫做smartzip的脚本,该脚本可以自动解压bzip2, gzip 和zip 类型的压缩文件:
#!/bin/sh
ftype=`file "$1"`
case "$ftype" in
"$1: Zip archive"*)
unzip "$1" ;;
"$1: gzip compressed"*)
gunzip "$1" ;;
"$1: bzip2 compressed"*)
bunzip2 "$1" ;;
*) error "File $1 can not be uncompressed with smartzip";;
esac
您可能注意到我们在这里使用了一个特殊的变量$1。该变量包含了传递给该程序的第一个参数值。也就是说,当我们运行:
smartzip articles.zip
$1 就是字符串 articles.zip
select 表达式是一种bash的扩展应用,尤其擅长于交互式使用。用户可以从一组不同的值中进行选择。
select var in ... ; do
break
done
.... now $var can be used ....
下面是一个例子:
#!/bin/sh
echo "What is your favourite OS?"
select var in "Linux" "Gnu Hurd" "Free BSD" "Other"; do
break
done
echo "You have selected $var"
下面是该脚本运行的结果:
What is your favourite OS?
1) Linux
2) Gnu Hurd
3) Free BSD
4) Other
#? 1
You have selected Linux
您也可以在shell中使用如下的loop表达式:
while ...; do
....
done
while-loop 将运行直到表达式测试为真。will run while the expression that we test for is true. 关键字"break" 用来跳出循环。而关键字”continue”用来不执行余下的部分而直接跳到下一个循环。
for-loop表达式查看一个字符串列表 (字符串用空格分隔) 然后将其赋给一个变量:
for var in ....; do
....
done
在下面的例子中,将分别打印ABC到屏幕上:
#!/bin/sh
for var in A B C ; do
echo "var is $var"
done
下面是一个更为有用的脚本showrpm,其功能是打印一些RPM包的统计信息:
#!/bin/sh
# list a content summary of a number of RPM packages
# USAGE: showrpm rpmfile1 rpmfile2 ...
# EXAMPLE: showrpm /cdrom/RedHat/RPMS/*.rpm
for rpmpackage in $*; do
if [ -r "$rpmpackage" ];then
echo "=============== $rpmpackage =============="
rpm -qi -p $rpmpackage
else
echo "ERROR: cannot read file $rpmpackage"
fi
done
这里出现了第二个特殊的变量$*,该变量包含了所有输入的命令行参数值。如果您运行showrpm openssh.rpm w3m.rpm webgrep.rpm
此时 $* 包含了 3 个字符串,即openssh.rpm, w3m.rpm and webgrep.rpm.
引号
在向程序传递任何参数之前,程序会扩展通配符和变量。这里所谓扩展的意思是程序会把通配符(比如*)替换成合适的文件名,它变量替换成变量值。为了防 止程序作这种替换,您可以使用引号:让我们来看一个例子,假设在当前目录下有一些文件,两个jpg文件, mail.jpg 和tux.jpg。
#!/bin/sh
echo *.jpg
这将打印出"mail.jpg tux.jpg"的结果。
引号 (单引号和双引号) 将防止这种通配符扩展:
#!/bin/sh
echo "*.jpg"
echo '*.jpg'
这将打印"*.jpg" 两次。
单引号更严格一些。它可以防止任何变量扩展。双引号可以防止通配符扩展但允许变量扩展。
#!/bin/sh
echo $SHELL
echo "$SHELL"
echo '$SHELL'
运行结果为:
/bin/bash
/bin/bash
$SHELL
最后,还有一种防止这种扩展的方法,那就是使用转义字符——反斜杆:
echo *.jpg
echo $SHELL
这将输出:
*.jpg
$SHELL
Here documents
当要将几行文字传递给一个命令时,here documents(译者注:目前还没有见到过对该词适合的翻译)一种不错的方法。对每个脚本写一段帮助性的文字是很有用的,此时如果我们四有那个 here documents就不必用echo函数一行行输出。 一个 "Here document" 以 << 开头,后面接上一个字符串,这个字符串还必须出现在here document的末尾。下面是一个例子,在该例子中,我们对多个文件进行重命名,并且使用here documents打印帮助:
#!/bin/sh
# we have less than 3 arguments. Print the help text:
if [ $# -lt 3 ] ; then
cat <
ren -- renames a number of files using sed regular expressions
USAGE: ren 'regexp' 'replacement' files...
EXAMPLE: rename all *.HTM files in *.html:
ren 'HTM$' 'html' *.HTM
HELP
exit 0
fi
OLD="$1"
NEW="$2"
# The shift command removes one argument from the list of
# command line arguments.
shift
shift
# $* contains now all the files:
for file in $*; do
if [ -f "$file" ] ; then
newfile=`echo "$file" | sed "s/${OLD}/${NEW}/g"`
if [ -f "$newfile" ]; then
echo "ERROR: $newfile exists already"
else
echo "renaming $file to $newfile ..."
mv "$file" "$newfile"
fi
fi
done
这是一个复杂一些的例子。让我们详细讨论一下。第一个if表达式判断输入命令行参数是否小于3个 (特殊变量$# 表示包含参数的个数) 。如果输入参数小于3个,则将帮助文字传递给cat命令,然后由cat命令将其打印在屏幕上。打印帮助文字后程序退出。 如果输入参数等于或大于3个,我们就将第一个参数赋值给变量OLD,第二个参数赋值给变量NEW。下一步,我们使用shift命令将第一个和第二个参数从 参数列表中删除,这样原来的第三个参数就成为参数列表$*的第一个参数。然后我们开始循环,命令行参数列表被一个接一个地被赋值给变量$file。接着我 们判断该文件是否存在,如果存在则通过sed命令搜索和替换来产生新的文件名。然后将反短斜线内命令结果赋值给newfile。这样我们就达到了我们的目 的:得到了旧文件名和新文件名。然后使用mv命令进行重命名。
函数
如果您写了一些稍微复杂一些的程序,您就会发现在程序中可能在几个地方使用了相同的代码,并且您也会发现,如果我们使用了函数,会方便很多。一个函数是这个样子的:
functionname()
{
# inside the body $1 is the first argument given to the function
# $2 the second ...
body
}
您需要在每个程序的开始对函数进行声明。
下面是一个叫做xtitlebar的脚本,使用这个脚本您可以改变终端窗口的名称。这里使用了一个叫做help的函数。正如您可以看到的那样,这个定义的函数被使用了两次。
#!/bin/sh
# vim: set sw=4 ts=4 et:
help()
{
cat <
xtitlebar -- change the name of an xterm, gnome-terminal or kde konsole
USAGE: xtitlebar [-h] "string_for_titelbar"
OPTIONS: -h help text
EXAMPLE: xtitlebar "cvs"
HELP
exit 0
}
# in case of error or if -h is given we call the function help:
[ -z "$1" ] && help
[ "$1" = "-h" ] && help
# send the escape sequence to change the xterm titelbar:
echo -e "33]0;$107"
#
在脚本中提供帮助是一种很好的编程习惯,这样方便其他用户(和您)使用和理解脚本。
命令行参数
我们已经见过$* 和 $1, $2 ... $9 等特殊变量,这些特殊变量包含了用户从命令行输入的参数。迄今为止,我们仅仅了解了一些简单的命令行语法(比如一些强制性的参数和查看帮助的-h选项)。 但是在编写更复杂的程序时,您可能会发现您需要更多的自定义的选项。通常的惯例是在所有可选的参数之前加一个减号,后面再加上参数值 (比如文件名)。
有好多方法可以实现对输入参数的分析,但是下面的使用case表达式的例子无遗是一个不错的方法。
#!/bin/sh
help()
{
cat <
This is a generic command line parser demo.
USAGE EXAMPLE: cmdparser -l hello -f -- -somefile1 somefile2
HELP
exit 0
}
while [ -n "$1" ]; do
case $1 in
-h) help;shift 1;; # function help is called
-f) opt_f=1;shift 1;; # variable opt_f is set
-l) opt_l=$2;shift 2;; # -l takes an argument -> shift by 2
--) shift;break;; # end of options
-*) echo "error: no such option $1. -h for help";exit 1;;
*) break;;
esac
done
echo "opt_f is $opt_f"
echo "opt_l is $opt_l"
echo "first arg is $1"
echo "2nd arg is $2"
您可以这样运行该脚本:
cmdparser -l hello -f -- -somefile1 somefile2
返回的结果是:
opt_f is 1
opt_l is hello
first arg is -somefile1
2nd arg is somefile2
这个脚本是如何工作的呢?脚本首先在所有输入命令行参数中进行循环,将输入参数与case表达式进行比较,如果匹配则设置一个变量并且移除该参数。根据unix系统的惯例,首先输入的应该是包含减号的参数。
实例
一般编程步骤
现在我们来讨论编写一个脚本的一般步骤。任何优秀的脚本都应该具有帮助和输入参数。并且写一个伪脚本(framework.sh),该脚本包含了大多数脚本都需要的框架结构,是一个非常不错的主意。这时候,在写一个新的脚本时我们只需要执行一下copy命令:
cp framework.sh myscript
然后再插入自己的函数。
让我们再看两个例子:
二进制到十进制的转换
脚本 b2d 将二进制数 (比如 1101) 转换为相应的十进制数。这也是一个用expr命令进行数学运算的例子:
#!/bin/sh
# vim: set sw=4 ts=4 et:
help()
{
cat <
b2h -- convert binary to decimal
USAGE: b2h [-h] binarynum
OPTIONS: -h help text
EXAMPLE: b2h 111010
will return 58
HELP
exit 0
}
error()
{
# print an error and exit
echo "$1"
exit 1
}
lastchar()
{
# return the last character of a string in $rval
if [ -z "$1" ]; then
# empty string
rval=""
return
fi
# wc puts some space behind the output this is why we need sed:
numofchar=`echo -n "$1" | wc -c | sed 's/ //g' `
# now cut out the last char
rval=`echo -n "$1" | cut -b $numofchar`
}
chop()
{
# remove the last character in string and return it in $rval
if [ -z "$1" ]; then
# empty string
rval=""
return
fi
# wc puts some space behind the output this is why we need sed:
numofchar=`echo -n "$1" | wc -c | sed 's/ //g' `
if [ "$numofchar" = "1" ]; then
# only one char in string
rval=""
return
fi
numofcharminus1=`expr $numofchar "-" 1`
# now cut all but the last char:
rval=`echo -n "$1" | cut -b 0-${numofcharminus1}`
}
while [ -n "$1" ]; do
case $1 in
-h) help;shift 1;; # function help is called
--) shift;break;; # end of options
-*) error "error: no such option $1. -h for help";;
*) break;;
esac
done
# The main program
sum=0
weight=1
# one arg must be given:
[ -z "$1" ] && help
binnum="$1"
binnumorig="$1"
while [ -n "$binnum" ]; do
lastchar "$binnum"
if [ "$rval" = "1" ]; then
sum=`expr "$weight" "+" "$sum"`
fi
# remove the last position in $binnum
chop "$binnum"
binnum="$rval"
weight=`expr "$weight" "*" 2`
done
echo "binary $binnumorig is decimal $sum"
#
该脚本使用的算法是利用十进制和二进制数权值 (1,2,4,8,16,..),比如二进制"10"可以这样转换成十进制:
0 * 1 + 1 * 2 = 2
为了得到单个的二进制数我们是用了lastchar 函数。该函数使用wc –c计算字符个数,然后使用cut命令取出末尾一个字符。Chop函数的功能则是移除最后一个字符。
文件循环程序
或许您是想将所有发出的邮件保存到一个文件中的人们中的一员,但是在过了几个月以后,这个文件可能会变得很大以至于使对该文件的访问速度变慢。下面的 脚本rotatefile 可以解决这个问题。这个脚本可以重命名邮件保存文件(假设为outmail)为outmail.1,而对于outmail.1就变成了outmail.2 等等等等...
#!/bin/sh
# vim: set sw=4 ts=4 et:
ver="0.1"
help()
{
cat <
rotatefile -- rotate the file name
USAGE: rotatefile [-h] filename
OPTIONS: -h help text
EXAMPLE: rotatefile out
This will e.g rename out.2 to out.3, out.1 to out.2, out to out.1
and create an empty out-file
The max number is 10
version $ver
HELP
exit 0
}
error()
{
echo "$1"
exit 1
}
while [ -n "$1" ]; do
case $1 in
-h) help;shift 1;;
--) break;;
-*) echo "error: no such option $1. -h for help";exit 1;;
*) break;;
esac
done
# input check:
if [ -z "$1" ] ; then
error "ERROR: you must specify a file, use -h for help"
fi
filen="$1"
# rename any .1 , .2 etc file:
for n in 9 8 7 6 5 4 3 2 1; do
if [ -f "$filen.$n" ]; then
p=`expr $n + 1`
echo "mv $filen.$n $filen.$p"
mv $filen.$n $filen.$p
fi
done
# rename the original file:
if [ -f "$filen" ]; then
echo "mv $filen $filen.1"
mv $filen $filen.1
fi
echo touch $filen
touch $filen
这个脚本是如何工作的呢?在检测用户提供了一个文件名以后,我们进行一个9到1的循环。文件9被命名为10,文件8重命名为9等等。循环完成之后,我们将原始文件命名为文件1同时建立一个与原始文件同名的空文件。
调试
最简单的调试命令当然是使用echo命令。您可以使用echo在任何怀疑出错的地方打印任何变量值。这也是绝大多数的shell程序员要花费80%的时间来调试程序的原因。Shell程序的好处在于不需要重新编译,插入一个echo命令也不需要多少时间。
shell也有一个真实的调试模式。如果在脚本"strangescript" 中有错误,您可以这样来进行调试:
sh -x strangescript
这将执行该脚本并显示所有变量的值。
shell还有一个不需要执行脚本只是检查语法的模式。可以这样使用:
sh -n your_script
这将返回所有语法错误。
我们希望您现在可以开始写您自己的shell脚本,希望您玩得开心。
一般人学不到的9条致富箴言
笑话:大粪与GDP
《百年前的李鸿章》
《百年前的李鸿章》
一百多年前的11月7日,大清国的直隶总督兼北洋大臣李鸿章死了。
在大清国的历史上,没有哪一个人像李鸿章一样在身前死后招致猛烈
而持久的抨击。这位晚清重臣的历史罪责深重得令人难以置信,仿佛中国
近代史所记录的众多耻辱与不公都是他一手造成的。国人一向将他从大清
国即将灭亡前所经历的一切内忧外患中孤立出来,而痛斥他为一个彻头彻
底的卖国贼。
然而,李鸿章对大清国历史的影响又远远超出了中国的国界,西方史
学家说:“以军人来说,他在重要的战役中为国家做了有价值的贡献;以
从政来说,他为这个地球上最古老,人口最多的国家的人民提供了公认的
优良设施。”晚年的李鸿章更是支撑着摇摇欲坠的大清国的主梁,没有他
的晚清史几乎是无法叙述的。
李鸿章无疑是值得关注的人物。
<三千里外欲封侯>
1823年2月,李鸿章生于安徽庐州府合肥县。1852年,他在翰林院的
大考中名列第二。太平军起义后,李鸿章毫不犹豫地离开了京城,回安徽
组织地方武装与太平军作战。他的勃勃野心是:一万年来谁著史,三千里
外欲封候。
1861年,长江下游的太平军向上海压缩,上海的商人官绅愿每月出
60万两银饷以求曾国藩湘军的保护。银子是不少,但没人愿意去,因为此
举等于要孤军深入到拥有百万只众的太平军后方。李鸿章愿意去。
1862年3月,大清国历史上一支著名的武装——李鸿章11个营的淮军
正式组建。
一个月后,淮军在两岸布满太平军营的垒的水道上成功地进行了大穿
越,进至上海。不久,3000淮军与10万太平军在虹桥交战,李鸿章亲临阵
地,淮军鸷悍凶猛,竟杀的太平军“尸积如山”。上海人目瞪口呆,淮军
名声鹊起。
这一年的11月,李鸿章被任命为江苏巡抚。两年后的7月,当太平军
都城南京被攻克后,李鸿章被封为一等肃毅伯爵,戴双眼花翎。
<洋务重臣>
淮军需要武器,1863年李鸿章买下洋人的机器设备,创办了中国第一
个近代军工企业:上海洋枪三局。李鸿章算过一笔帐:一发英国的普通炮
弹在市场上卖到30两银子,一万发铜帽子弹要卖到19两银子。他说,大清
国凭什么要把白花花的银子给了洋人?
大清中叶以后,朝廷南北货物的调运部分改为海路运输,李鸿章抓住
时机督办创立了“招商局轮船公司”。这是中国第一家民营轮船公司,它
一直运营到1949年。而当洋人要在中国开设电报业务的时候,李鸿章不允
许洋人从香港铺设来的海底电缆上岸。时隔不久,由他支持铺设的中国第
一条电报电缆线在大沽口到天津城之间开通。作为大清国唯一出访过工业
革命后的欧洲的重臣,李鸿章深知电报业蕴藏着极高的军事和民用价值。
由于他的支持和参与,洋务派创办了中国近代第一条铁路、第一座钢
铁厂、第一座机器制造厂、第一座矿务局、第一所电报局、第一所外国语
学校、第一所近代化军校、第一支近代化海军舰队……
李鸿章曾对美国人说,只有将货币、劳动力和土地有机地结合起来,
才会产生财富。清政府必须邀请欧美资本进入大清国,以建立现代的工业
企业,帮助大清国开发利用本国丰富的自然资源。但这些企业的自主权应
掌握在清政府手中。大清国欢迎欧美来华投资,提供资金和技工。但是,
对于铁路、电讯等事务,要由大清国自己控制。他说:“我们必须保护国
家主权。”在中国还处在男人梳长辫、女人裹小脚的时代,李鸿章的这番
话可谓石破天惊。
李鸿章为大清国国计民生的近代化所奠基的所有事业,今他身后的国
人一直在受益。
<危急时刻的“出场”>
1894年爆发的中日甲午之战是李鸿章一生遇到的最大的挫折——“海
军费绌,设备多不完,惟鸿章知之深。朝野皆不习外事,谓日本国小不足
平,故全国主战,独鸿章深知其强盛,逆料中国海陆军皆不可恃,故宁忍
之诟言和。朝臣争劾鸿章误国,枢臣日责鸿章,乃不得已而备战。”1895
年,在甲午战争中战败的清廷令李鸿章前去日本议和。面对日本人割让辽
东、台湾、澎湖,赔款军费3亿两白银的“要价”,李鸿章知道如果采取
强硬的立场,只能导致中日战争继续扩大。以大清国实际的军力状况而言
,结果只能是中国的东北被全面占领。可如果答应日本人的条件大清国主
权和财产的损失也是巨大的,李鸿章只能两害相权取其轻。
1895年4月,带着《马关条约》草约回国的李鸿章成了举国的“公敌”
:朝廷斥责他办事不力,官员说他丧权辱国,民间暗示他拿了日本人的银
子,更有人公开声明要不惜一切杀掉他以雪“心头奇耻大辱”。被革了职
的李鸿章不禁想起了全体军机大臣在上奏给皇帝的一份奏折中说过的一句
话:“中国之败全由不西化之故,非鸿章之过!”
1900年8月15日,大清国的都城在外国联军以保护使馆为名的围攻中
沦陷,政府和朝廷在对各国宣战仅两个月后逃亡。时任两广总督的李鸿章
被重新调任为大清国封疆大臣中最高职位:直隶总督兼北洋大臣。朝廷要
求李鸿章北上与正在攻打这个国家的洋人议和——“每当满清政府把这个
巨大的帝国带到毁灭的边缘,他们唯一必须起用的人就是李鸿章。”
10月11日,77岁的李鸿章到达北京,开始了与外国联军噩梦般的“议
和谈判”。“每当聚议时,一切辩驳均由李鸿章陈词;所奏朝廷折电,概出
李鸿章之手。”李鸿章意识到联军在京城屯兵数万,有随时扩大战争的能力
。一旦战争再被挑起,国家的秩序无法恢复,朝廷的职能无法履行,关系到
国计民生的经济活动陷于停滞,百姓和国家只能被拖入日甚一日的战乱。在
京城的病榻上还在与洋人周旋争辩的李鸿章没有想到,慈禧看了11国的《议
和大纲》后“惊喜万分”,因为其中没有一条涉及到她。各国并没有让她交
出权力的意思,于是立即表示:“敬念宗庙社稷,关系至重,不得不委屈求
全。”并给李鸿章回电:“所有十二款,应既照允。”
1901年1月15日,李鸿章和庆亲王代表大清国在占尽“中国财力兵力”
的“《议和大纲》上签字。国人即刻指责道:“卖国贼者秦烩,误国者李鸿
章!”
一个巨大的帝国屡战屡败,却每一次都要讨伐李鸿章不能维护国家权益
。
李鸿章吐血了。
1901年9月7日,代表大清国与11国签订了中国近代史上著名的不平等条
约《辛丑条约》的李鸿章在回到他居住的北京贤良寺后,再次大口吐血。两
个月后的11月7日,李鸿章死了,享年78岁。
就在李鸿章死前一个小时,俄国公使还在他的床头,逼迫他在俄占中国
东北的条约上签字。李鸿章已不能说话,他只有眼泪了,眼泪流尽了,他的
眼睛闭上了。
一辈子与蛮横的洋人周旋得身心俱僬的李鸿章死前留有遗折一封,其中
切盼他的大清国“举行新正,力图自强”。李鸿章说大清国已经没有绝对封
闭的国防,西方势力不但在文化上侵蚀着中国,更重要的是他们有侵占中国
的野心,其手段是“一国生事,多国构煽”,列强的“友好”和“野心”从
来都是搀杂在一起的。世界发展至今日,一国已不可能关闭国门而安然生存
。大清国如果打开国门参与世界商品经济的往来,不但可以富强自己,而且
因为贸易是双边的,等于也就制约了别人,这样的制约甚至强过武力。持有
这样的认识的人,在百年前的中国可谓凤毛麟角。
李鸿章生逢大清国最黑暗、最动荡的年代,他每一次“出场”无不是在
国家存亡危急之时,大清国要他承担的无不是“人情所最难堪”之事。虽然
国人对他评价一向与西方舆论截然不同,虽然在中国评价一个人是很容易同
时也是很难的事情,但正如梁启超所言,国人在对其咒骂痛斥之时,万“不
可不深自反也”,万“不可放弃国民之责任”。梁启超还说,他“敬李鸿章
之才”,“惜李鸿章之识”,“悲李鸿章之遇”。
适得其反的员工激励(转载)
按照公司的规定,每年的一定时期,会由主管对下属员工工作情况进行评价。伴随而来的是一个加薪的机会。
我在这里却发现一种很让人奇怪的现象:少部份被加薪员工一如继往地努力工作甚至更加拼命;但大多数员工,无论加薪与否,在这之后的一小段时期工作绩效反而降低。更有甚者,极少数员工主动离职。
这个现象就很耐人寻味了,让我们来看看这些事件里公司付出了什么:
效果为什么反而更差了呢?正好前些天看到一则小故事:
有一位老人,孤单地生活在一个小村庄里,没有亲人。 一群调皮的孩子总是喜欢骚扰这位老人,没事就喧哗吵闹砸玻璃,怎么也无法让他们安静与老实。 于是老人召集了孩子们,告诉他们:明天你们谁砸了我的玻璃,我将给他一美金的奖励。第二天,玻璃被砸完了。老人兑现了他的诺言。 并且对孩子们说:明天你们如果谁砸了我的玻璃,我将给他五十美分作为奖励。孩子们抱怨了一通,但隔天当然又来了并且痛快地大砸了一番…… 老人仍旧如集孩子们,说:明天你们谁继续来,砸了玻璃的,我将给他一美分作为奖品! 孩子们嗤之以鼻,散了。 后面再也不来砸玻璃了。
我们分析一下孩子们的心理:
以砸玻璃为乐趣 -> 得知砸玻璃居然能够带来收入 -> 心理预期为1美元/每玻璃
-> 对收入降低表示不满但仍能接受 -> 远低于心理预期,拒绝
因此,有几个问题:
我又想起射雕英雄传里的一个小故事,或许可以作为结尾:
哲别进帐,谢了赐酒,正要举杯,桑昆叫道:“你这小小的十夫长,怎敢用我的金杯喝酒?”哲别又惊又怒,停杯不饮,望着铁木真的眼色。蒙古人习俗,阻止别人饮酒是极大的侮辱。何况在这众目睽睽之下,教人如何忍得?铁木真寻思:“瞧在义父脸上,我便再让桑昆一次。”当下对哲别道:“拿来,我口渴,给我喝了!”从哲别手里接过金杯,仰脖子一饮而干。哲别向桑昆怒视一眼,大踏步出帐。桑昆喝道:“你回来!”哲别理也不理,昂头走了出去。
……
铁木真在火光下见哲别兀自满脸怒色,便叫道:“拿酒来!”随从呈上了一大壶酒。铁木真提了酒壶,大声说道:“今天咱们把那蛮人杀得大败,大家都辛苦了。”众兵将叫道:“是王罕大汗、铁木真汗、札木合汗带领咱们打的。”铁木真道:“今天我见有一个人特别勇敢,冲进敌人后军,杀进杀出一连三次。射死了数十名敌人,那是谁呀?”众兵叫道:“是十夫长哲别!”铁木真道:“甚么十夫长?是百夫长!”众人一楞,随即会意,欢呼叫道:“哲别是勇士,可以当百夫长。”铁木真对者勒米道:“拿我的头盔来!”者勒米双手呈上。铁水真伸手拿过,举在空中,叫道:“这是我戴了杀敌的铁盔,现今给勇士当酒杯!”揭开酒壶盖,把一壶酒都倒在铁盔里面,自己喝了一大口,递给哲别。
哲别满心感激,一膝半跪,接过来几口喝干了,低声道:“镶满天下最贵重宝石的金杯,也不及大汗的铁盔。”铁木真微微一笑,接回铁盔,戴在头上。
关于绩效考核(目标管理)科学性的思考(转载,强烈推荐!)
一、目标管理绩效考核的鼻祖德鲁克在美国倍受指责
1.日本(戴明)式和美国(目标)式管理在1980年代决出了胜负
1940年代,戴明等人对美国战争产业教授统计过程控制学(SP
C–Statistical Process Control)。
1950年代,统计过程控制学及其人群关系运动在美国消失。美国采用目标管理(MBO–Management by Objectives)绩效考核(Performance Appraisal)。戴明给日本产业领袖授课,日本开始进行全面质量控制(TQC–Total Quality Control),日本设立戴明奖(日本最高质量管理奖)。
1960-1970年代,美国继续采用目标管理。戴明继续给日本产业领袖咨询和授课。日本经济繁荣。美国渐失市场。
1980年代,在汽车、家电、钢铁等所有日本产业参与竞争的行业,美国企业不是被压得喘不过气来,就是被迫退出了行业竞争。戴明管理式公司和目标管理式公司在市场上决出了胜负。美国人开始反省,NBC纪录片《日本能,为和美国不能?》使戴明在美国一夜成名,美国产业界普遍认为:“戴明是日本经济奇迹背后的驱动力。”戴明管理哲学和统计过程控制学在美国成为时尚,美国开始采取全面质量管理(TQM – Total Quality Management),美国设立鲍丁格奖(美国最高质量管理奖),开始批评并放弃目标管理。
1990年代,日本经济萧条。目标管理在美国消失,美国产业仍重视质量管理,强调领导力企业文化,以及从丰田管理体系(Toyota System)改进而来的精益化制造/工程管理(Lean Manufacturing / Engineering),美国工业重新站了起来。
2.戴明称目标管理是对美国管理最具有破坏性的力量
瑞法尔.阿克雅(Rafael Aguayo)在他的《戴明博士(Dr. Deming)》一书中写道:“彼得.德鲁克(Peter Drucker),著名的管理学者,管理咨询专家,十分积极的倡导一个绩效考核系统,该系统被德鲁克称为:‘目标管理(MBO–Management By Objective)’。
其他一些管理学者,那些在现实世界中把公司做倒了的管理专家们,也积极地推动了目标管理。目标管理的概念是如此整洁,使美国的经理们舒适满意地感到:目标管理、绩效考核是必要的,会使员工们更好更努力的工作,进而可以提高公司的生产效率和利润。
但是,戴明在1980年代十分明确的告诫:绩效考核、不管称它为控制管理或什么其它名字,包括目标管理在内,是唯一对今日美国管理最具有破坏性的力量。美国可以出口任何东西,就是不能出口美国现在的管理方法,至少不能出口到友好的国家。”
3.彼得.斯科尔特斯称目标管理绩效考核为梦想清单
彼得.斯科尔特斯(Peter R. Scholtes)在他的《戴明领导手册(The Leader’s Handbooks)》一书中写道:“目标管理法多少只能算是‘心想事成’的梦想清单,无异于我们儿时圣诞节前或生日时的祝愿。‘我有些心愿,’老板这么说,‘现在你要负责将它们实现。’
这样一点都不费脑筋。它不叫领导力,而只表示不想用心思考,并且放弃领导。”在彼得.斯科尔特斯看来:
(1)绩效考核行不通。
目前还没有有效的研究证实,某组织实施绩效考核,状况就会更好,更多看到的是,一个企业花费资金和精力在咨询公司的帮助下,建立了绩效考核系统,但是,在实施的过程中,就会发现由此产生的弊端和问题,在没有见到绩效考核的效果之前,就已经让企业领导焦头烂额,承认自己曾努力推动的绩效考核管理的失败,自然是一件很多企业领导不愿承认的现实。
绩效考核成功吗?根据蒂莫西.谢尔哈特(Timothy Schellhardt)在《华尔街日报》(1996年11约9日)的报告:九成以上的绩效考核制并不成功。彼得.斯科尔特斯(Peter Scholtes)怀疑实际上比这更糟。
(2)绩效考核与领导力和团队协作不相容。
绩效考核使每一个员工与其主管之间,都有个别绩效期望与评审之关系,决定了员工的个人利益,在团队成员之间形成了竞争的关系,相互帮助就会使自己绩效下降;而团队成员与团队之间,则有期望及互依关系,有时候,员工必须面对主管期望与团队期望相冲突,从而必须有所选择的窘境,究竟要以主管还是以团队为重呢?通常是迁就主管而舍弃团队。
领导的政策和做法,可以表示出对人是信任或不信任、对人忠诚或不忠诚。绩效考核反映出领导对员工的态度,会促使一个团队的分裂和漠不关心,使组织失去温暖,喜欢怪罪别人,员工士气低落。
(3)绩效考核使系统失去不断改进的机会。
尽管绩效考核的正式目的也许是为了改进,然而却长流于评定及判断,反而少于改进有关,多沦为对受评者个人的掌握,而改进系统和过程需要的是反馈而不是判断。
绩效考核的焦点绝大多数放在个人身上,有时放在小组上,而大多数问题与在于改进系统和过程本身,不在个人或小组上。改进有两种不同的方法,一种是把注意力集中在改进系统及找出问题的系统成因正确方法,另一种是想改进个别员工并找出罪犯的方法,绩效考核就是以找罪犯为主的解决方式,它其实鼓励表面化,鼓动人们问“谁?”而不是“为什么?”。忽略了系统会有偏差,绝大多数问题是由系统本身引起的事实,从而失去了不断改进系统和过程的机会。
二、20年前危害美国的目标管理会对中国有好处吗?
1.1980年代美国银行目标管理的结果
美国银行(Bank of America)曾一度制定了全美国最有雄心的目标绩效考核激励奖罚制度,以发放贷款的数额决定贷款员的表现,表现最佳者可获得超过中等表现者50%收入的奖励,结果美国银行得到了他们想要,也该得到的东西:大批的坏账,虽然实现了管理目标,但随后银行却因此遭受了巨大损失。只看贷款数额,而不去考虑表面看不到的更重要的贷款质量、风险、客户忠诚等因素。只知道要求雇员110%地努力工作,随后再加10%的目标要求,如此年复一年是非常愚蠢的管理方法。
2.1980年代美国纽约交通警察局目标管理的结果
纽约交通警察局(NYTPD – New York Transportation Police Department)有一段时间持续出现错误和非法逮捕事件,无辜的人被指控犯有重罪,其中绝大多数是黑人和墨西哥裔人。事件曝光以后发现一个分局的4个警察要对这些错误和非法逮捕事件负主要责任,这4个警察全部被停职,并接受审查。奇怪的是,调查结果显示:这4个警察是该分局表现最佳的警察,原来这个分局实行的是目标管理法,警察的工作成绩、表彰、提升是靠逮捕数量,尤其是对重罪和性骚扰罪逮捕数量决定的。警察中的白人种族主义分子,乘机滥用权力,一举两得,用非法残忍的手段迫害少数族裔,还得到了分局的认可奖赏,但他们对社会和警察局造成了巨大的损害,民众尤其是少数族裔对警察和执法人员失去了信心,抗议活动造成了族群对立和社会动荡。
3.1980年代美国国际电话电信公司目标管理的兴衰
美国国际电话电信公司(ITT),前首席执行官、总裁海洛德.吉尼恩(Harold Geneen)在他的一本名叫《管理(Management)》书中写道:“一个3句话的企业管理课程:你看书是从开头开始看,你管理一个企业正好相反,先从结局开始,然后你做一切必需的事为达成结局而努力。”这就是在美国被称为“反向式管理(Backward management)”的东西。
吉尼恩是财务教育工作背景,他最重视的是财务结果,他认为管理是简单和直接的,他坚持ITT每年要达到增加利润15%的目标,不断升高生产销售目标,不断要求减少开支,每个人必须完成或超过自己的定额指标,优胜者奖,落后者罚,老完不成指标者就走人。
当吉尼恩成为ITT总裁后不久,财务报告显示利润持续增加,公司股票升值快速,投资分析师认为 ITT是一个经营很好的公司,加以推崇。ITT公司股票价格升高大大超过了别的上市公司,使ITT有了兼并别的股票表现不太好公司的能力,ITT借此增加了每股盈利,因而增加了股票价值。如此效仿,ITT又在新购买的子公司实行“管理魔术 – 目标管理”,使ITT的股票进一步升值。
在1961年,吉尼恩掌管ITT两年时,ITT销售额是7.566亿美元,盈利0.29亿美元,在1977年,吉尼恩下台时,ITT销售额是167亿美元,盈利5.62亿美元,吉尼恩掌管ITT的16年中,ITT在80个国家兼并了350个公司,顶峰时是美国500强第九名。
随后ITT就以历史上前所未有的速度和规模崩溃了。首先是主要分公司出现了问题,ITT就开始出售这些问题分公司, 法国等国坚持要从ITT买回自己受人尊敬的电话公司,很快ITT缩小到了比他最初还要小的公司。让人们吃惊和怀疑的是ITT曾经和与福特汽车、通用汽车、IBM、通用电气同属一列。
ITT的问题是质量,ITT电话系统不工作,产品和服务质量低劣。当财务报告显示公司仍大笔赚钱时,没有人曾指责ITT的质量问题,当质量问题成为有目共睹的事实时,ITT失去了它所有的魅力,但质量是硬道理,客户是公司存在的基础,吉尼恩 16年的目标管理实现了,也正是他为ITT挖好了坟墓。
在60-70年代,ITT令人印象深刻的财务结果愚弄了许多人,包括许多投资人,整个国家都认为ITT的经理们懂得如何管理,数百的ITT经理们被高薪聘走成为其它公司的首席执行官,希望他们带来ITT的管理模式,ITT管理模式被称为成功管理的榜样。
有一个没有被愚弄得人就是戴明,还有那些正听戴明讲课,并忠实实施的日本人。
4.2002年北京一家著名房地产企业目标管理的后果
在2001年,北京一家著名的房地产企业由于工期要求很紧,就制定了非常强烈的奖罚激励制度,公司从上到下层层实行目标管理,要求必须按时完工,所有人在强大的压力下,日夜加班加点,总算按时完成了这栋大楼的建设,成功的实现了公司制定的目标管理计划,成了公司成功目标管理的典范。
但是好景不长,半年以后该楼房一侧地基下沉了30厘米,楼体出现了大量裂缝,经技术鉴定是施工单位没有按施工要求施工。事实上,在目标管理的期限内,他们根本不可能用常规施工方法完成地基,再加上冬季施工,所以问题很快就暴露出来了。这栋楼成了这个创业老板挥之不去的一块心病,成了公司难以启齿的败笔,购买了这栋楼房屋的住户,心里更不是滋味,以各种方式表达他们的愤怒,公司负责这栋楼一个副总裁的衬衣已被撕了3件,事情还远远未了。
以质量和公司长期利益为代价的目标管理是没有意义的,数字目标往往不能反应公司最主要的东西,而且很难制定合理准确的目标,如果制定的目标超过了系统的能力,要强制人们实现该目标,正如戴明所说的:“人们在设法实现目标时,就会有‘移山’的精神。”就会出现“亩产万斤的良田”。
5.目标管理对中国社会的危害随处可见
只举在中央电视台节目中出现的许多例子中的这两个,来说明目标管理对社会造成的危害。
(1)12月5日的马斌读报,主要谈论了有关我国GDP的问题,马斌先生的结论是:
——以GDP为中心的发展观念必须改变,不能把钱作为唯一的目标。
——要根除GDP崇拜、GDP牛皮、短期利益、前安徽副省长王怀忠GDP作假。
——人民日报称之为“黑色GDP”,完全忽视了质量。
(2)张力伟杀父案引起了社会的关注。张力伟在家长、学校和社会的学习压力和在生活过渡依赖的环境下,形成了它独特的具有毁灭性的性格,最终酿成大祸。该事件再次引起了大家对我国中小学教育系统的讨论,我国的中小学生负担过重是不争的实事,毕业班的学生和家长更是象度过一场灾难一样。
完全以考试成绩和升学率为目标,这些目标又与教师的奖金绩效挂钩,其结果就是许多教师压学生们做更多的学习努力。学生成绩排名次,对智力比较差的学生造成了很大的压力和心理伤害,有可能发展成为日后的社会仇视者。
学校和家长关注孩子的只有一个目标:考试成绩,没有时间和精力关心青少年其它能力的培养和孩子们的身心健康,更使我们的孩子们承受了过多的压力,失去了欢乐的少年儿童时代。据新浪网关注青少年心理调查报道,据统计我国有3000万心理有问题的青少年,存在恐怖和抑郁等问题的大学生占学生总数的16%。
在美国的中国人经常嘲笑美国人无知,但他们赖以生存的专业水平都很高也很专业。美国孩子比我们的孩子生活的轻松多了,美国的中学生除了各学科知识比我们的中学生浅很多之外,其活动能力,身体和心理素质等各方面要比我们的青少年强不少。但是,美国的大学生,硕士和博士生在本专业的基本功上又比我们强不少。
虽然国家要求减轻学生负担,但这不是一个要求就能解决的问题,事实上,学生的实际压力并没有减少。要从课程和教育体制系统上来考虑减轻中国中小学生的压力。
三、目标管理绩效考核(控制管理)错在何处?
1.目标管理的实质是反向式控制管理
大多数的反向式管理(Backward management)就是从利润开始,反向推导获利润的方法,先从结局开始,然后做一切必需的事为达成结局而努力。这种反向式管理方式有一个严重的逻辑错误,就是利润是过去行动的结果,而过去发生的事是无法改变的,所谓的管理就是从结果找原因,消除减少利润的原因。目前的结果是由过去的资源配置下产生的,如果错误地消减掉其中一项10美元的开支,很可能会对以后造成成千上万美元的损失。例如:消减一项以前一直在进行的安全培训,以后出了安全事故的代价是多大?
在目标管理看来,利润是由财务来反映的,例如:收入和开支。而且每一个开支都是由一个原因产生的,只要消除原因,就会消除开支。但在现实生活中,一个原因可能是由许多东西产生的,而这个原因又影响其它的开支和收入,何况许多对公司最重要的东西是无法用数字来表示的,质量和创新在哪?次品到达客户手里后,公司要付出的成本?有多少潜在客户为什么不再购买我们的产品?产品出现了安全问题造成了客户伤亡增么办?如果抓不住问题的核心——质量,其它的努力将会是徒劳的。
一个简单的逻辑,“如果A发生,B就会跟随”会发生;反过来,“如果B发生,A就会跟随”不见得就会发生。这就是质量(A)和利润(B)的逻辑关系。
目标管理绩效考核或称之为控制管理,给每个人定额目标,限期完工,对每个施加压力,恐惧被作为普遍的工具,质量早就被忘记了,人们在这样的环境里常常被一些愚蠢的条条框框所束缚控制,就不会有不断改进和创新,也不会作出真正的贡献,创造力和生产效率就消失了,人们努力去达到他们的工作定额绩效目标,并不关心自己的工作对公司的效果。
2.单纯追求利润目标,靠帐面数字管理企业
在美国,那些用账面数字管理企业的经理被称为:“只看表面数字的经理(VNO Manager – Visible Number Only Manager)”。
制定高额利润指标,利润等于收入减掉开支,人为地增加利润,增加收入,减少开支,成了这种经理的首选管理方法。当销售下滑时,这种经理为了实现高利润的目标,很可能就会减少或取消培训计划、研究开发、售后服务、裁减工程技术人员,改用便宜低质量的供应商,质量不可避免地将会下降,随后利润也会下降。当今许多所谓的减少开支的方法,事实上是收回投资、减少或取消基础设施建设。
这种经理不明白质量和利润的关系,他们是在建立空中楼阁,是用杀鸡取蛋的方法获得短期的高效益。还有些经理只关注他在一个领导位置上一两年的短期效益,个人利益和政绩,这样的经理可以把公司账面利润,在他的任期内增加几个百分点,因此而获得提升或个人经济利益,如果重用这样的人,将会毁掉整个公司。
数字只代表过去,数字还可以作假,这种账面数字为本的公司,表面利润可能看起来很好,在股市上可以短期欺骗一些股民投资者,但是在市场上,根本无法与以戴明哲学为本的公司竞争,因为客户需要的是高质量的产品和服务,并不会去注意公司的利润,而客户是一个公司存在的基础,客户是骗不了的。
3.制定高额利润或绩效目标,靠奖罚管理企业
这种经理相信,一个公司最重要的是人,听起来好象不错,只要他手下的人没有问题了,公司就没有问题了,公司的问题是由于员工不用心工作,或者是他们有意犯错误。只要每一个人多做一些贡献,工作的更努力一些,公司的问题就解决了。
这种经理相信,目标奖罚制度会使人们更努力更好地去工作,因而可提高生产率和利润。他门认为:个人实现目标表现出色,公司就会表现出色,追求个人表现最大化,个人的表现加起来等于公司的表现。
听起来有理,但是错了,如果每个人都110%的在努力工作,而现有的人员和系统能力不可能达到预定的目标,为了达到目标或由于压力,有些人就会不择手段,以公司的长期利益为代价。例如:销售人员会承诺客户不可能兑现的产品和服务,这个销售人员可能会超额完成年度销售目标,得到了大笔奖金,但是,公司服务开支就会增加,若不提供这些额外服务,客户对公司的不满将会激增,忠诚有价值客户的流失就意味着一个公司的衰落。还有些人会弄虚作假,做表面文章欺骗上级,有些人会采用非法手段去实现目标,这些行为都会毒化企业文化,这些人会因为实现了目标而得到了奖赏和提升,如果依照绩效提拔重用这些人就意味着一个公司的灭亡。
那些由于不受他们控制的系统因素而没有完成绩效目标的人,事实上也不可能完成目标的人受到了处罚。这就会进一步破坏团队精神,毒化企业文化。
这些经理不明白系统决定了94%的结果,而他们自己才有权利和责任改进系统。奖罚一个承包了一亩地种小麦的农民,他的小麦亩产量不会增加一倍,如果你非要他亩产增加一倍,他就只好想别的办法“增产”了。
这些经理经常会说:“我雇你是要结果,不是要借口”;“我不管你怎么做,我只要结果”。
4.放弃目标管理绩效考核,建立领导力企业文化
企业是一个为实现目标组织起来的系统,就像一辆汽车,其发动机和传动系统决定了它的速度,要想提高最高速度,只有改进系统,而奖罚驾驶员只会损坏汽车,这就是为什么要放弃目标管理的原因。
如果不能预测地震,同样也就无法制定准确的目标,如用这个不能反映实际情况变化的目标往回压,实行反向强制管理,人们为应对不可能实现的目标时,就会作假撒谎,就会有“移山”的能力。如果实行目标绩效考核,那就是在用一把不可能准确的尺子在严肃地测量人们的表现。
目标管理、目标、评分或排名绩效考核(控制管理)无法做到公平准确,不能表示公司最重要的东西,制造谎言、失败者、恐惧、不公平、怨气、不合作、不帮助、破坏团队精神和领导力。正如戴明所说的:“我们被自己最大的努力毁掉了。”
戴明说:“取消所有的工作定额是必要的。”一个有诚信和领导力企业文化的公司,员工充满了内在的工作热情的公司,那定额事实上就没有用,你只能得到系统给你的结果,目标制定太低没有意义,而且会阻碍发展的动力。目标制定的太高,希望得到超过系统能力的结果,不但是不可能的,而且会产生破坏性的后果。正如戴明所说的:“人们在设法实现不可能达到的目标时有‘移山’的能力。
要加强计划、愿景和目标导向,但是不能反向强制去实现目标,否则就会出现拔苗助长的后果,就会出“亩产万斤”的良田。
要区分开制定目标和目标管理,这是两个完全不同的概念,可以制定任何目标,但制定目标要尽量科学准确,还要认识到目标的不确定性,目标事实上要有可调整性,要制定短期具体的目标,例如:年度目标,目标还要与长期的愿景相一致。
传统的目标管理以该目标为基准,实行反向管理组织人员和资源,用奖罚激励去实现制定的目标。新的目标管理观念,提高或延伸目标,组织团队和资源,支持和激励人们发挥最大内在能量,带领团队向目标冲击,目标是十但能做到八就是英雄。
计划是管理的重要方法,由于计划不周引起的时间、资源和人力浪费是十分巨大的。不是要放弃而是要加强公司的计划管理能力。
按照戴明的建议放弃目标管理绩效考核,那用什么来代替它呢?答案就在于要建立企业核心价值下的领导力企业文化,要获得员工人心(控制管理做不到这一点),要不断改进产品和系统(质量建立在整个系统之中),以有竞争力(低成本)的质量(超过客户期望的产品和服务质量)取胜的管理思想。
彼得原理: 晋升是最糟糕的激励措施(转载)