Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4470936
  • 博文数量: 1148
  • 博客积分: 25453
  • 博客等级: 上将
  • 技术积分: 11949
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-06 21:14
文章分类

全部博文(1148)

文章存档

2012年(15)

2011年(1078)

2010年(58)

分类: LINUX

2011-01-17 21:19:34

1.交互式程序

在命令行上直接输入shell脚本是一种测试短小代码段的简单而快捷的方式。

假设你想要从大力那个c语言源文件中查找包含字符串POXIS的文件。与其使用grep命令在每个文件中搜索字符床,软后在分别列出包含该字符串的文件,不如用下面的交互式脚本



在这个例子中,grep 命令输出它找到的含有POSIX字符串的文件,然后more命令将文件的内容显示在屏幕上。最后,返回shell提示符。


shell还提供了通配符扩展 通常称为 globbing。
        用通配符    *      来匹配一个字符串
                      ?          来匹配单个字符
                      [set]     允许匹配方括号中任何一个单个字符
                      [^set]    对方括号中的内容取反,及匹配任何没有给出的字符集中的字符
                      扩展的话括号  {  }     (只能用在部分的shell中,包括bash中。允许你将任意的字符串放在一个集合中

这个命令将列出my_fingers 和 my_toes ,它使用shell来检查当前目录下的每个文件。





有经验的linux用户可能会使用一种更有效的方式来执行这个简单的操作。也许使用如下的命令



如果每次想要执行一系列命令时,你都要输入冗长的过程。我们可以需要将这些命令保存到一个文件中即我们所说的shell脚本。


2.5.2 创建脚本
第一个脚本文件
  1. #!/bin/sh

  2. for file in *
  3. do
  4.    if grep -q POSIX $file
  5.    then
  6.      echo $file
  7.    fi
  8. done

  9. exit 0




注释以#符号开始
请注意第一行 #!/bin/sh ,他是一种特殊形式的注释,
#!字符告诉我们系统同一行上紧跟在它后面的那个参数是用来执行文件的程序。
在这个例子中,/bin/sh/是默认的shell程序。


exit 命令的作用是确保脚本程序能够返回一个有意义的退出码。请相信自己的脚本程序是有用的,它总有一天会做为其他脚本程序的部分被重用。


linux 和unix 很少使用扩展名来决定文件的内容,你可以为脚本使用.sh或者其他扩展名,但是shell并不关心。

2.5.3把脚本设置为可执行
chmod +x test
我自己都是使用chmod 777 test  设置为全部的权限,省的麻烦

然后使用如下的命令来执行:
$ test
但是,在ubuntu下不能成功执行显示处正确的答案

这个命令可以
./test
作用:把脚本程序的完整的相对路径告诉shell
    之二:它能够保证你不会意外执行系统中与你的脚本文件同名的另一个命令。


阅读(963) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~