预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共26页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

bash编程入门 ShellScript(bash)简介 众所皆知地,UNIX上以小工具著名,利用许多简单的小工具,来完成原本需要大量软体开发的工作,这一点特色,使得UNIX成为许多人心目中理想的系统平台。 在众多的小工具中,ShellScript算得上是最基本、最强大、运用最广泛的一个。它运用围之广,不但从系统启动、程式编译、定期作业、上网连线,甚至安装整个Linux系统,都可以用它来完成。 因为ShellScript是利用您平日在使用的一些指令,将之组合起来,成为一个"程式"。如果您平日某些序列的指令下得特别频繁,便可以将这些指令组合起来,成为另一个新的指令。这样,不但可以简化并加速操作速度,甚至还可以干脆自动定期执行,大大简化系统管理工作。 ************************* Bash(GNUBourne-AgainSHell)是许多Linux平台的内定Shell,事实上,还有许多传统UNIX上用的Shell,像tcsh、csh、ash、bsh、ksh等等,ShellScript大致都类同,当您学会一种Shell以后,其它的Shell会很快就上手,大多数的时候,一个ShellScript通常可以在很多种Shell上使用。 这里我介绍您bash的使用方法。事实上,当您"manbash"时,就可以看到bash的说明书,不过对许多人来说,这份说明书犹如"无字天书"一样难懂。这份文件,主要资料来源为"manbash",我加上一些实际日常的应用例来说明。希望这样能让那些始终不得其门而入的人们,多多少少能有点概念。 教学例子 "Helloworld"ShellScript 照传统程式教学例,这一节介绍ShellScript的"HelloWorld"如何撰写。 ************************* #!/bin/sh #Filename:hello echo"Helloworld!" ************************* 大家应该会注意到第一行的"#!/bin/sh"。在UNIX下,所有的可执行Script,不管是那一种语言,其开头都是"#!",例如Perl是"#!/usr/bin/perl",tcl/tk是"#!/usr/bin/wish",看您要执行的Script程式位置在那里。您也可以用"#!/bin/bash"、"#!/bin/tcsh"等等,来指定使用特定的Shell。 echo是个bash的内建指令。 ************************* 接下来,执行hello这个script: 要执行一个Script的方式有很多种。 ************************* 第一种:将hello这个档案的权限设定为可执行。 [foxman@foxmanbash]#chmod755hello 执行 [foxman@foxmanbash]#./hello helloworld ************************* 第二种:使用bash内建指令"source"或"."。 [foxman@foxmanbash]#sourcehello helloworld 或 [foxman@foxmanbash]#.hello helloworld ************************* 第三种:直接使用sh/bash/tcsh指令来执行。 [foxman@foxmanbash]#shhello helloworld 或 [foxman@foxmanbash]#bashhello helloworld ************************* Bash执行选项 ************************* -cstring:读取string来当命令。 -i:互动介面。 -s:由stdin读取命令。 -:取消往后选项的读取。 -norc:不要读~/.bashrc来执行。 -noprofile:不要读/etc/profile、~/.bash_profile、~/.bash_login、~/.profile等等来执行。 -rcfilefilename:执行filename,而非~/.bashrc -version:显示版本。 -quiet:启动时不要哩唆。 -login:确保bash是个loginshell。 -nobraceexpansion:不要用curlybraceexpansion({}符号展开)。 -nolineediting:不用readline来读取命令列。 -posix:改采Posix1003.2标准。 用于自动备份的ShellScript 一个用于自动备份的ShellScript 我们先前提到,可利用ShellScript搭配cr