系统相关
首页 > 系统相关> > 鸟哥的Linux私房菜学习之第十二章笔记

鸟哥的Linux私房菜学习之第十二章笔记

作者:互联网

shell 脚本是利用 shell 的功能所写的一个【程序(program)】,这个程序是使用纯文本文件,并一些shell 的语法与命令(含外部命令)写在里面,搭配正则表达式、管道命令与数据流重定向等功能,以达到我们所想要的处理目的

shell 脚本用在系统管理上面是很好的一项工具,但 是用在处理大量数值运算上,就不够好了,因为shell 脚本的速度较慢,且使用的 CPU 资源较多 会造成主机资源的分配不良。

在 shell 脚本的文件中,命令是从上而下、从左而右地分析与执行。

shell 脚本的执行,至少需要有r的权限;若需要直接执行命令,则需要拥有r与x的权限。

绝对路径:使用/home/ljc/shell.sh来执行命令;

相对路径:假设工作目录在/home/ljc/,则使用./shell.sh来执行

以bash程序来执行:通过【bash shell.sh】或【sh shell.sh】来执行

 

编写脚本

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

良好的程序编写习惯中,第一行要声明 shell(#/bin/bash),第二行起声明程序的用途、版本作者等信息。在脚本的文件头处记录好:

脚本的功能;

脚本的版本信息

脚本的作者与联络方式脚本的版权声明方式

脚本的 History(历史记录);脚本内较特殊的命令

使用【绝对路径】的方式来执行

脚本运行时需要的环境变量预先声明与设置。

交互式脚本可用read 命令完成。

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

要每次执行脚本都有不同结果的数据,可使用date命令利用日期完成。

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

脚本若以 source 来执行,代表在父程序的 bash 内执行之意。

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

若需要进行判断式,可使用 test 或中括号([])来处理。

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

在脚本内,$0、$1、$2..$@ 是有特殊意义的。

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

条件判断式可使用 i.then 来判断,若是固定变量内容的情况下,可使用 case $var in...esac来处理。

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

循环主要分为不定循环(while 与 unt)以及固定循环(for),配合 do、done 来完成所需任务。

我们可使用 sh -x script.sh 来进行程序的 debug。

-n:不要执行脚本,仅查询语法问题

-v:再执行脚本前,先将脚本文件的内容输出到屏幕上

-x:将使用到的脚本内容显示到屏幕上,这是有用的参数

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

标签:脚本,shell,使用,sh,bash,Linux,鸟哥,执行,私房
来源: https://blog.51cto.com/cnljc/2897837