欢迎来到天天文库
浏览记录
ID:41032634
大小:20.93 KB
页数:7页
时间:2019-08-14
《shell脚本编程学习》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Shell脚本编程学习入门是本文要介绍的内容,我们可以使用任意一种文字编辑器,比如gedit、kedit、emacs、vi等来编写shell脚本,它必须以如下行开始(必须放在文件的第一行):#!/bin/sh...注意:最好使用“!/bin/bash”而不是“!/bin/sh”,如果使用tcshell改为tcsh,其他类似。符号#!用来告诉系统执行该sell脚本的程序,本例使用/bin/sh。编辑结束并保存后,如果要执行该shell脚本,必须先使其可执行:chmod+xfilename此后在该shell脚本所在目录下,输入./fil
2、ename即可执行该shell脚本。Shell里的一些特殊符号a[]shell离得函数如果你写过比较复杂的shell脚本,就会发现可能在几个地方使用了相同的代码,这时如果用上函数,会方便很多。函数的大致样子如下:functionname(){#insidethebody$1isthefirstargumentgiventothefunction#$2thesecond...body}你需要在每个脚本的开始对函数进行声明。下面是一个名为xtitlebar的shell脚本,它可以改变终端窗口的名称。这里使用了一个名为help的函数,该函
3、数在shell脚本中使用了两次:#!/bin/sh#vim:setsw=4ts=4et:help(){cat<4、help["$1"="-h"]&&help#sendtheescapesequencetochangethextermtitelbar:echo-e"33]0;$107"#在shell脚本中提供帮助是一种很好的编程习惯,可以方便其他用户(和自己)使用和理解脚本。命令行参数我们已经见过$*和$1,$2...$9等特殊变量,这些特殊变量包含了用户从命令行输入的参数。迄今为止,我们仅仅了解了一些简单的命令行语法(比如一些强制性的参数和查看帮助的-h选项)。但是在编写更复杂的程序时,您可能会发现您需要更多的自定义的选项。通常的惯例是在所有可5、选的参数之前加一个减号,后面再加上参数值(比如文件名)。有好多方法可以实现对输入参数的分析,但是下面的使用case表达式的例子无疑是一个不错的方法。#!/bin/shhelp(){cat<6、shift1;;#variableopt_fisset-l)opt_l=$2;shift2;;#-ltakesanargument->shiftby2--)shift;break;;#endofoptions-*)echo"error:nosuchoption$1.-hforhelp";exit1;;*)break;;esacdoneecho"opt_fis$opt_f"echo"opt_lis$opt_l"echo"firstargis$1"echo"2ndargis$2"你可以这样运行该脚本:cmdparser-lhello-f7、---somefile1somefile2返回结果如下:opt_fis1opt_lishellofirstargis-somefile12ndargissomefile2这个shell脚本是如何工作的呢?脚本首先在所有输入命令行参数中进行循环,将输入参数与case表达式进行比较,如果匹配则设置一个变量并且移除该参数。根据unix系统的惯例,首先输入的应该是包含减号的参数。shell脚本示例一般编程步骤现在我们来讨论编写一个脚本的一般步骤。任何优秀的脚本都应该具有帮助和输入参数。写一个框架脚本(framework.sh),该shell8、脚本包含了大多数脚本需要的框架结构,是一个非常不错的主意。这样一来,当我们开始编写新脚本时,可以先执行如下命令:cpframework.shmyscript然后再插入自己的函数。让我们来看看如下两个示例。二进制到十进制的转换脚本b2d
4、help["$1"="-h"]&&help#sendtheescapesequencetochangethextermtitelbar:echo-e"33]0;$107"#在shell脚本中提供帮助是一种很好的编程习惯,可以方便其他用户(和自己)使用和理解脚本。命令行参数我们已经见过$*和$1,$2...$9等特殊变量,这些特殊变量包含了用户从命令行输入的参数。迄今为止,我们仅仅了解了一些简单的命令行语法(比如一些强制性的参数和查看帮助的-h选项)。但是在编写更复杂的程序时,您可能会发现您需要更多的自定义的选项。通常的惯例是在所有可
5、选的参数之前加一个减号,后面再加上参数值(比如文件名)。有好多方法可以实现对输入参数的分析,但是下面的使用case表达式的例子无疑是一个不错的方法。#!/bin/shhelp(){cat<6、shift1;;#variableopt_fisset-l)opt_l=$2;shift2;;#-ltakesanargument->shiftby2--)shift;break;;#endofoptions-*)echo"error:nosuchoption$1.-hforhelp";exit1;;*)break;;esacdoneecho"opt_fis$opt_f"echo"opt_lis$opt_l"echo"firstargis$1"echo"2ndargis$2"你可以这样运行该脚本:cmdparser-lhello-f7、---somefile1somefile2返回结果如下:opt_fis1opt_lishellofirstargis-somefile12ndargissomefile2这个shell脚本是如何工作的呢?脚本首先在所有输入命令行参数中进行循环,将输入参数与case表达式进行比较,如果匹配则设置一个变量并且移除该参数。根据unix系统的惯例,首先输入的应该是包含减号的参数。shell脚本示例一般编程步骤现在我们来讨论编写一个脚本的一般步骤。任何优秀的脚本都应该具有帮助和输入参数。写一个框架脚本(framework.sh),该shell8、脚本包含了大多数脚本需要的框架结构,是一个非常不错的主意。这样一来,当我们开始编写新脚本时,可以先执行如下命令:cpframework.shmyscript然后再插入自己的函数。让我们来看看如下两个示例。二进制到十进制的转换脚本b2d
6、shift1;;#variableopt_fisset-l)opt_l=$2;shift2;;#-ltakesanargument->shiftby2--)shift;break;;#endofoptions-*)echo"error:nosuchoption$1.-hforhelp";exit1;;*)break;;esacdoneecho"opt_fis$opt_f"echo"opt_lis$opt_l"echo"firstargis$1"echo"2ndargis$2"你可以这样运行该脚本:cmdparser-lhello-f
7、---somefile1somefile2返回结果如下:opt_fis1opt_lishellofirstargis-somefile12ndargissomefile2这个shell脚本是如何工作的呢?脚本首先在所有输入命令行参数中进行循环,将输入参数与case表达式进行比较,如果匹配则设置一个变量并且移除该参数。根据unix系统的惯例,首先输入的应该是包含减号的参数。shell脚本示例一般编程步骤现在我们来讨论编写一个脚本的一般步骤。任何优秀的脚本都应该具有帮助和输入参数。写一个框架脚本(framework.sh),该shell
8、脚本包含了大多数脚本需要的框架结构,是一个非常不错的主意。这样一来,当我们开始编写新脚本时,可以先执行如下命令:cpframework.shmyscript然后再插入自己的函数。让我们来看看如下两个示例。二进制到十进制的转换脚本b2d
此文档下载收益归作者所有