外壳编程

    在DOS中,你可能会从事一些例行的重复性命令,此时你会将这些重复性的命令写成批处理命令,只要执行这个

批处理命令就等于执行这些命令。在Linux系统中也有类似的批处理命令,他的功能比起DOS的批处理命令更为强

大,相对也较为复杂,已经和一般的高级语言不相上下。这些批处理命令在Linux中叫外壳脚本(外壳Script).

    外壳脚本是以文本方式储存的,而非二进制文件。所以外壳脚本必须在Linux系统的外壳下解释执行。不同外壳的

脚本大多会有一些差异,所以我们不能将写给A外壳的脚本用B外壳执行。而在Linux系统中大家最长使用是Bourne

外壳以及C外壳。

创建外壳程序
   
      你可以用任何的编辑器编辑外壳程序,只要将要执行的外壳或Linux命令写入外壳程序即可。例如,假设你的系

统在启动时挂接有一台CD-ROM驱动器,而你想更换驱动器中的CD,并读取其中的内容。一种方法是:首先把想要

读取的CD放入CD-ROM驱动器。然后使用unmount命令卸载CD-ROM驱动器,最后再使用mount命令挂接

CD-ROM驱动器。命令如下:
      
          umount /dev/cdrom
          mount -t iso9660 /dev/cdrom /cdrom

    你可以创建一个包含这两个命令的文件名为remount的外壳程序,而不必在每次更换CD都重复执行这两个命

令。

运行外壳程序

    如何运行我们已经写好的外壳脚本呢?可以有四种方法,下面分别介绍这几种方法:
    1.可以把外壳脚本的权限设置为可执行,这样就可以在外壳提示符下直接执行。我们可以使用下列命令更改外

壳脚本的权限:

    chmod u+x filename           只有自己可以执行,其他人不能执行。
    chmod ug+x filename         只有自己及同一工作组的人可以执行,其他人不能执行。
    chmod +x filename              所有人都可以执行。
    而我们如何指定使用哪一个外壳来解释执行外壳脚本呢?几种基本的指定方式如下所述:
    1.如果外壳脚本的第一个非空白字符不是“#”,则它会使用Bourne外壳
    2.如果外壳脚本的第一个非空白字符是“#”,但不以“#!”开头时,则它会是使用C外壳。
    3.如若外壳脚本以“#!”开头,则“#!”后面所跟的字符串就是所使用的外壳的绝对路径名。Bourne外壳的路径名称为/bin/sh,而C外壳则为/bin/csh.
    例如:
    1.如何使用Bourne外壳,可用以下方式:
    echo enter filename
    或者
    #!/bin/sh
    2.如何使用C外壳,可用以下方式:
    #C外壳Script
    或者
    #!/bin/csh
    3.如何使用/etc/perl作为外壳,可用以下方式:
    #! /etc/perl
   
       第二种方法是执行外壳想要执行的外壳,其后跟随外壳脚本的文件名作为命令行参数。例如,使用tcsh执行上面的外壳脚本:
       tcsh remount
       此命令启动一个新的外壳,并令其执行remount文件。
       第三种方法是在pdksh和bash下使用.命令,或在tcsh下使用source命令。例如,在pdksh和bash下执行上面的外壳脚本:
       . remount
       或在tcsh下执行上面的外壳脚本:
       source remount
       第四种方法是使用命令替换
       这是一个相当有用的方法。如果想要使某个命令的输出成为另一个命令的参数时,就可以使用这个方法。我们将命令列于两个`号之间,而外壳会以这个命令执行后的输出结果代替这个命令以及两个`符号。例如:
       str='Current directory is' `pwd`
       echo $str
       结果如下:
       Current directory is /users/cc/mgtsai
在上面的例子中,pwd这个命令输出/users/cc/mgtsai,而后整个字符串代替原来的 ‘pwd’设定str变量,所以str变量的内容则会包括pwd命令的输出。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值