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

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

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

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

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

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

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

以bash程序来执行:经过【bash shell.sh】或【sh shell.sh】来执行3d

 

编写脚本blog

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),第二行起声明程序的用途、版本做者等信息。在脚本的文件头处记录好:ip

脚本的功能;资源

脚本的版本信息

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

脚本的 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、$一、$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=

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息