bash编程
--------------------------------------------------------------------------------
時間:2004/03/02 來源:不详
Shell Script(bash)简介
众所皆知地,UNIX上以小工具著名,利用许多简单的小工具,来完成原本需要大量软体研发的工作,这一点特色,使得UNIX成为许多人心目中理想的系统平台。
在众多的小工具中,Shell Script算得上是最基本、最强大、运用最广泛的一个。他运用围之广,不但从系统启动、程式编译、定期作业、上网连线,甚至安装整个Linux系统,都能够用他来完成。
因为Shell
Script是利用您平日在使用的一些指令,将之组合起来,成为一个"程式"。假如您平日某些序列的指令下得特别频繁,便能够将这些指令组合起来,成为另
一个新的指令。这样,不但能够简化并加速操作速度,甚至还能够干脆自动定期执行,大大简化系统管理工作。
*************************
Bash(GNU Bourne-Again SHell)是许多Linux平台的内定Shell,事实上,更有许多传统UNIX上用的Shell,像tcsh、csh、ash、bsh、ksh等等, Shell Script大致都类同,当您学会一种Shell以后,其他的Shell会很快就上手,大多数的时候,一个Shell Script通常能够在很多种Shell上使用。
这里我介绍您bash的使用方法。事实上,当您"man bash"时,就能够看到bash的说明书,但是对许多人来说,这份说明书犹如"无字天书"相同难懂。这份文档,主要资料来源为"man bash",我加上一些实际日常的应用例来说明。希望这样能让那些始终不得其门而入的人们,多多少少能有点概念。
教学例子
"Hello world" Shell Script
照传统程式教学例,这一节介绍Shell Script的"Hello World"如何撰写。
*************************
#!/bin/sh
# Filename : hello
echo "Hello world!"
*************************
大家应该会注意到第一行的"#!/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@foxman bash]# chmod 755 hello
执行
[foxman@foxman bash]# ./hello
hello world
*************************
第二种 : 使用bash内建指令"source"或"."。
[foxman@foxman bash]# source hello
hello world
或
[foxman@foxman bash]# . hello
hello world
*************************
第三种 : 直接使用sh/bash/tcsh指令来执行。
[foxman@foxman bash]# sh hello
hello world
或
[foxman@foxman bash]# bash hello
hello world
*************************
Bash执行选项
*************************
-c string : 读取string来当命令。
-i : 互动介面。
-s : 由stdin读取命令。
- : 取消往后选项的读取。
-norc : 不要读~/.bashrc来执行。
-noprofile : 不要读/etc/profile、~/.bash_profile、~/.bash_login、~/.profile等等来执行。
-rcfile filename : 执行filename,而非~/.bashrc
-version : 显示版本。
-quiet : 启动时不要哩唆。
-login : 确保bash是个login shell。
-nobraceexpansion : 不要用curly brace expansion({}符号展开)。
-nolineediting : 不用readline来读取命令列。
-posix : 改采Posix 1003.2标准。
用于自动备份的Shell Script
一个用于自动备份的Shell Script
我们先前提到,可利用Shell Script搭配crond来作定期的工作。要作定期性的工作,在UNIX上,就是和crond的搭配运用。
*************************
首先我们先来研究如何对系统进行备份。
要对系统进行备份,不外乎便是利用一些压缩工具。在许多UNIX系统上,tar及gzip是de facto的资料交换标准。我们经常能够看见一些tar.gz或tgz档,这些档案,被称为tarball。当然了,您也能够用bzip2、zip等等压 缩工具来进行压缩,不必限定于gzip。但tar配合gzip是最普遍的,也是最方便的方式。
要将我们想要的资料压缩起来,进行备份,能够结合tar及gzip一起进行。方式有很多种,最常用的指令是以下这一种:
tar -c file/dir ... | gzip -9 > xxxx.tar.gz
您也能够分开来做:
tar -r file/dir ... -f xxxx.tar
gzip -9 xxxx.tar
或
*************************
Bash(GNU Bourne-Again SHell)是许多Linux平台的内定Shell,事实上,更有许多传统UNIX上用的Shell,像tcsh、csh、ash、bsh、ksh等等, Shell Script大致都类同,当您学会一种Shell以后,其他的Shell会很快就上手,大多数的时候,一个Shell Script通常能够在很多种Shell上使用。
这里我介绍您bash的使用方法。事实上,当您"man bash"时,就能够看到bash的说明书,但是对许多人来说,这份说明书犹如"无字天书"相同难懂。这份文档,主要资料来源为"man bash",我加上一些实际日常的应用例来说明。希望这样能让那些始终不得其门而入的人们,多多少少能有点概念。
教学例子
"Hello world" Shell Script
照传统程式教学例,这一节介绍Shell Script的"Hello World"如何撰写。
*************************
#!/bin/sh
# Filename : hello
echo "Hello world!"
*************************
大家应该会注意到第一行的"#!/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@foxman bash]# chmod 755 hello
执行
[foxman@foxman bash]# ./hello
hello world
*************************
第二种 : 使用bash内建指令"source"或"."。
[foxman@foxman bash]# source hello
hello world
或
[foxman@foxman bash]# . hello
hello world
*************************
第三种 : 直接使用sh/bash/tcsh指令来执行。
[foxman@foxman bash]# sh hello
hello world
或
[foxman@foxman bash]# bash hello
hello world
*************************
Bash执行选项
*************************
-c string : 读取string来当命令。
-i : 互动介面。
-s : 由stdin读取命令。
- : 取消往后选项的读取。
-norc : 不要读~/.bashrc来执行。
-noprofile : 不要读/etc/profile、~/.bash_profile、~/.bash_login、~/.profile等等来执行。
-rcfile filename : 执行filename,而非~/.bashrc
-version : 显示版本。
-quiet : 启动时不要哩唆。
-login : 确保bash是个login shell。
-nobraceexpansion : 不要用curly brace expansion({}符号展开)。
-nolineediting : 不用readline来读取命令列。
-posix : 改采Posix 1003.2标准。
用于自动备份的Shell Script
一个用于自动备份的Shell Script
我们先前提到,可利用Shell Script搭配crond来作定期的工作。要作定期性的工作,在UNIX上,就是和crond的搭配运用。
*************************
首先我们先来研究如何对系统进行备份。
要对系统进行备份,不外乎便是利用一些压缩工具。在许多UNIX系统上,tar及gzip是de facto的资料交换标准。我们经常能够看见一些tar.gz或tgz档,这些档案,被称为tarball。当然了,您也能够用bzip2、zip等等压 缩工具来进行压缩,不必限定于gzip。但tar配合gzip是最普遍的,也是最方便的方式。
要将我们想要的资料压缩起来,进行备份,能够结合tar及gzip一起进行。方式有很多种,最常用的指令是以下这一种:
tar -c file/dir ... | gzip -9 > xxxx.tar.gz
您也能够分开来做:
tar -r file/dir ... -f xxxx.tar
gzip -9 xxxx.tar
或
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




