什么是shell脚本?
shell是命令行界面下让我们与系统沟通的工具,而shell脚本就是利用shell功能所编写的程序,这个程序使用纯文本文件。将一些shell的语法与命令写在里面,与正则表达式,管道命令,与数据流重定向一起实现我们的目的。
       为什么要学习shell脚本呢?如果linux对于你而言,只是做到会用,那么,不学shell脚本无所谓,但是,如果你想清楚linux的来胧去脉,shell脚本不可不知。因为:
1.自动化管理的重要依据:
不用说你也知道,管理一台主机不是一件简单的事。每天要进行任务有:查询登陆文件,追踪流量,监控用户使用的状态,主机各设备状态,主机软件更新查询,以及解决其它用户的临时要求,而这些工作,可以手动处理,也可以编写一个简单程序 每日自动处理分析,等有问题才通知你,当然,比较而言,系统自动工作更好,这就需要shell脚本来起用了。
2.追踪与管理系统的重要工作:
linux的系统的服务启动的接口,在/etc/init.d目录下,所有的文件都是脚本,另外,包括引导过程也都是利用shell脚本来搜索系统的相关设置数据,然后再代入各个服务的设置参数。所以,想要更深入的了解linux,确实需要学习脚本。
当然还有其它的许多功能与用处。比如:
简单的主机***检测功能,连续命令单一化,简单的数据处理,跨平台支持与缩短学习历程等,都要用到SHELL。下面就来讲讲shell的用法。
如前面所讲,shell 是纯文本文件,编写shell需要注意以下事项。
1.命令与参数间的多个空白会被忽略掉
2.空白行(tab)也将被忽略掉
3.如果读取到一个enter(CR),就尝试开始执行该行命令
4.如果一行的内容太多,则可使用\enter来扩展下一行
5.#可作为注释。任何加在#后面的内容,将全部被视为注释文字而被忽略
如此一来,我们在脚本内所编写的程序,就会一行一行的被执行,假设文件名是example.sh,如何执行这个文件呢?
很简单,方法如下
1.将example.sh加上可读与执行权限,然后就能用./example.sh来执行了
2.用bash example.sh的方式直接执行
下面来编写一个简单的shell脚本
view plaincopy to clipboardprint?
·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
#!/bin/bash  
echo -e "hello,how are you?" 
exit 0 
#!/bin/bash
echo -e "hello,how are you?"
exit 0
 
就这么简单,一个简单的shell 脚本写成了,第一行,是必须的,表示这个脚本使用的名称,因为使用的是bash,所以,必须要以#!/bin/bash开声明这个文件内的语法使用bash的语法。这一句很重要,如果没有这句话,那么程序可能有无法运行。
主要程序就是第二行,就是echo那一个,echo 就是显示一句话。
第三行,告知执行结果,在有关bash的知识中,一个命令是否执行成功,可以使用$?变量来观察,我们也可以使用exit命令让程序中断,并给系统回传一个值,在这个例子中,使用exit 0表示离开脚本,并且给系统回传一个0,所以,执行完这个脚本后,若接着执行echo $? 便可得到0 值,使用exit n 的功能,还可以自定义错误信息,让这个程序更加的灵活。
shell主要和正则表达式,grep,管道结合起来一起使用。
在学好表达式的基础上,shell可以很快上手