请注意,上面范例二中执行的½果并不会有颜色的显示!鸟哥为了方便说明所以在
+
号之后的数据
都加上颜色了!
在输出的讯息中,
在加号后面的数据其实都是指令串,由于
sh -x
的方式来½指令
执行过程也显示出来,
如此用户可以判断程序代码执行到哪一段时会出现相关的信息!
这个功能非
常的棒!透过显示完整的指令串,
你就能够依据输出的错误信息来订正你的½本了!
熟悉
sh
的用法,½可以使你在管理
Linux
的过程中得心应手!至于在
Shell scripts
的学习方法上
面,需要『
多看、多模仿、并加以修改成自己的样式!
是最快的学习手段了!网络上有相当多的
朋友在开发一些相当有用的
scripts
,若是你可以½对方的
scripts
拿来,并且改成适合自己主机的
样子!那么学习的效果会是最快的呢!
另外,我们
Linux
系统本来就有很多的服务启动½本,如果你想要知道每个
script
所代表的功能是
什么?
可以直½以
vim
½入该
script
去查阅一下,通常立刻就知道该
script
的目的了。
举例来说,
我们之前一直提到的
/etc/init.d/netconsole
,这个
script
是干嘛用的?
利用
vim
去查阅最前面的几
行字,他出现如下信息:
# netconsole This loads the netco
nsole module with the configured parameters.
# chkconfig:
-
50 50
# description: Initializes network console logging
# config: /etc/sysconfig/netconsole
意思是说,这个½本在设定网络终端机来应付登入的意思,且配置文件在
/etc/sysconfig/netconsole
定内!
所以,你写的½本如果也能够很清楚的½待,那就太棒了!
另外,本章所有的范例都可以
http://linux.vbird.org/linux_basic/0340bashshell-scripts/scripts-20150717.tar.bz2
里头找到喔!加油~
12.7
重点回顾
.
shell script
是利用
shell
的功能所写的一个『程序
(program)
』,这个程序是使用纯文本文件,½一些
shell
语法与指令
(
含外部指令
)
写在里面,
搭配正规表示法、管线命令与数据流重导向等功能,以达到我们所想
要的处理目的
.
shell script
用在系统管理上面是很好的一项工具,但是用在处理大量数值运算上,
就不够好了,因为
Shell
scripts
的速度½慢,且使用的
CPU
资源½多,造成主机资源的分配不良。
.
Shell script
的文件中,指令的执行是从上而下、从左而右的分析与执行;
.
shell script
的执行,至少需要有
r
的权限,若需要直½指令下达,则需要拥有
r
x
的权限;
.
良好的程序撰写习惯中,第一行要宣告
shell (#!/bin/bash)
,第二行以后则宣告程序用途、版本、作者等
.
对谈式½本可用
read
指令达成;
.
要½立每次执行½本都有不同½果的数据,可使用
date
指令利用日期达成;
.
script
的执行若以
source
来执行时,代表在父程序的
bash
内执行之意!
.
若需要½行判断式,可使用
test
或中括号
( [] )
来处理;
.
script
内,
$0, $1, $2..., $@
是有特殊意义的!
.
条件判断式可使用
if...then
来判断,若是固定变量内容的情况下,可使用
case $var in ... esac
来处理
.
循环主要分为不定循环
(while, until)
以及固定循环
(for)
,配合
do, done
来达成所需任务!
.
我们可使用
sh -x script.sh
来½行程序的
debug