开发者必要的技能:linux的shell编程

来源:互联网 发布:全职法师 知乎 编辑:程序博客网 时间:2024/05/16 14:24

 最近在做一个项目的时候,需要在Linux中安装一些工具软件。大概有5个软件吧。

我们的子公司开发后,做了一个安装指南。仔细一看内容,发现有一些问题。

  问题1:有不少笔误。比如错字,还有大小写不分等等。

  问题2:有一些很模糊的步骤。

  问题3:有一些步骤中要确认某个东西,比如JAVA HOME变量,但是没有说明去哪里确认。

  问题4:5个软件的安装都是解压,配置,编译,安装的流程。

 

   首先对问题1来说,虽然是很低级的错误,但正因为是很低级的错误,会让客户对你的满意度大大降低。因为你太粗心了,会感觉你很不负责任的的。

   对问题2来说,作为一个提交给客户的东西,不能有模糊的东西。如果自己没有搞清楚,不写进去比较好。因为写进去了客户还是会问你的。

   对问题3来说,写的太粗。如果客户都是和开发者一样的水平的话,当然写个大概就可以了。但对于大多数的客户来说都不是很懂的。即使对于实力比较强的客户来说,也不能太粗了。写的详细一方面说明你认真负责,另一方面也说明你对客户很体贴。会增加相互的信任感。

   对问题4来说,虽然没有什么太大的问题,但是太多麻烦,不够亲切。客户操作起来比较费时,费事。从客户的角度来说,越简单越好。

 

那怎么才能使安装指南简单易操作呢?就上面的问题4来说,Linux中我们可以写一个shell来batch安装。这样客户只要执行一些shell就完事了。

因此对开发者来说,会shell编程是一项必要的技能。shell一般有C shell,顾名思义就是类似C语言的风格。还有B shell。

 

比如想先判断某个包是否已经安装了,如果安装了就不必重新安装了。

例子:

  rpm -qa |grep libpng 
  if [ $? -ne 0 ]; then
     tar -xvf XXXpng.tar.gz

     cd  XXXpng

     ./confgure --with-prefix=/usr/local

     make

     make install

     echo "png 安装了。" 
  else
     echo "已经安装过了,不需要再安装了。"
  fi

 

还有比如系统中有多个JAVA版本,我在编译的时候不想用环境变量的那个版本,一般默认是用环境变量的那个版本来编译。这个时候我们可以临时设置JAVA HOME。

  JAVA_HOME=$JAVA_HOME
  export JAVA_HOME

 

安装的时候,文件的删除,新建,包的拷贝等等都能用到。

 

这样自己写一个安装shell文件后,对别人来构建环境是非常方便的。特别是对客户来说,能够减轻客户的负担,增加相互的信任。

原创粉丝点击