鸟哥Linux私房菜之学习Shell Scripts(1)

发表于:2009-11-26 10:31

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

  撰写 shell script 的良好习惯建立

  一个良好习惯的养成是很重要的~大家在刚开始撰写程序的时候,最容易忽略这部分, 认为程序写出来就好了,其它的不重要。其实,如果程序的说明能够更清楚, 那么对您自己是有很大的帮助的。

  举例来说,鸟哥自己为了自己的需求,曾经撰写了不少的 script 来帮我进行主机 IP 的侦测啊、 登录档分析与管理啊、自动上传下载重要设定档啊等等的,不过,早期就是因为太懒了, 管理的主机又太多了,常常同一个程序在不同的主机上面进行更改,到最后,到底哪一支才是最新的都记不起来, 而且,重点是,我到底是改了哪里??为什么做那样的修改?都忘的一乾二净~真要命~

  所以,后来鸟哥在写程序的时候,通常会比较仔细的将程序的设计过程给他记录下来, 而且还会记录一些历史纪录,如此一来,好多了~ 至少很容易知道我修改了哪些数据,以及程序修改的理念与逻辑概念等等, 在维护上面是轻松很多很多的喔!

  另外,在一些环境的设定上面,毕竟每个人的环境都不相同,为了取得较佳的执行环境, 我都会自行先定义好一些一定会被用到的环境变量,例如 PATH 这个玩意儿! 这样比较好啦~所以说,建议您一定要养成良好的 script 撰写习惯, 在每个 script 的文件头处记录好:

  • script 的功能;
  • script 的版本信息;
  • script 的作者与联络方式;
  • script 的版权宣告方式;
  • script 的 History (历史纪录);
  • script 内较特殊的指令,使用绝对路径的方式来下达;
  • script 运作时需要的环境变量预先宣告与设定。

  简单的 shell script 练习

  在第一支 shell script 撰写完毕之后,相信您应该具有基本的撰写功力了。 接下来,在开始更深入的程序概念之前,我们先来玩一些比较有趣的简单的小范例好了。 底下的范例中,达成结果的方式相当的多,建议您先自行撰写看看,写完之后再与鸟哥写的内容比对, 这样才能更加深概念喔!好!不啰唆,我们就一个一个来玩吧!

  ----------------------------------------------------------------

  变量内容由使用者决定

  很多时候我们需要使用者输入一些内容,好让程序可以顺利运作。 简单的来说,大家应该都有安装过软件的经验,安装的时候,他不是会问您『要安装到那个目录去?』吗? 那个让使用者输入的数据的动作,就是让使用者输入变量内容啦。

  你应该还记得在 bash 的时候,我们有学到一个 read 指令吧?忘记的话,请自行回头去阅读一番。 现在,请你以 read 指令的用途,撰写一个 script ,他可以让使用者输入:1 first name 与 2. last name, 最后并且在屏幕上显示:『Your full name is: 』的内容:

  [root@linux scripts]# vi sh02.sh
  #!/bin/bash
  # Program:
  # Let user keyin their first and last name, and show their full name.
  # History:
  # 2005/08/23        VBird        First release
  PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
  export PATH
  read -p "Please input your first name: " firstname
  read -p "Please input your last name:  " lastname
  echo -e " Your full name is: $firstname $lastname"

  将上面这个 sh02.sh 执行一下,你就能够发现使用者自己输入的变量可以被取用的哩! 很不错吧!加油!

  ---------------------------------------------------------------

43/4<1234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号