一、为什么要使用shell编程呢?
(1)是可以快速、简单地完成编程
(2)如果你有一个简单的构想则可以通过它来检查自己的想法是否可行
(3)shell非常适合于编写一些执行相对简单的任务的小工具,因为它们更强调的是易于配置、易于维护和可移植性,而不是看重执行效率
(4)可以使用shell对进程控制进行组织,使命令按照预定顺序在前一阶段命令成功的前提下顺序执行
缺陷:shell不适合用来完成时间紧迫和处理器忙碌型的任务
二、什么是shell?
(1)shell是一个作为用户与Linux系统间接接口的程序,它允许用户向操作系统输入需要执行的命令。举例:我们可以使用“<”和“>”对输入输出进行重定向,使用“|”在同时执行的程序之间实现数据的管道传递,使用$(...)获取子进程的输出。
上图显示了shell(实际是两种shell:bash和csh)和其他程序环绕在Linux内核的四周。
由于Linux是高度模块化的系统,所以你可以从各种不同的shell中选择一种来使用。
$ /bin/bash --version 查看bash的版本号
如果想要切换到另一个shell(例如,bash不是你的系统中默认的shell),你只需直接执行需要的shell程序(例如,/bin/bash)就可以运行新的shell并且改变命令提示符了。
shell本身只是允许将几个现有的命令结合在一起,以构成一个新的功能强大的命令。
(2)shell还提供了通配符扩展(通常称为globbing)如: * 匹配一个字符串; ? 匹配单个字符; [set]允许匹配方括号中任何一个单个字符;[^set]对方括号中的内容取反; {}允许将任意的字符串组放在一个集合中,以供shell进行扩展(只能在部分shell,包括bash)
$ grep -1 POSIX * | more 该命令指输出包含POSIX字符串的文件名
扩展:在shell脚本文件中 #!字符告诉系统同一行上紧跟在它后面的那个参数是用来执行本文件的程序