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 创建脚本
第一个脚本文件
- #!/bin/sh
-
-
for file in *
-
do
-
if grep -q POSIX $file
-
then
-
echo $file
-
fi
-
done
-
-
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) |