首页 | Linux 基础 | 资讯动态 | Linux 应用 | Linux 服务器 | Linux 开发 | Linux 安全 | 专题 | 联盟论坛
  当前位置:主页>Linux 开发>文章内容
Linux程式设计.Shell Script(bash)(1,2)
来源: 作者: 发布时间:2007-05-24  

众所皆知地,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标准


 
如果您对本文有任何疑问或者建议,请到论坛讨论区发表您的意见: >> 论坛入口
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
  热点文章
·嵌入式Linux系统下图形库讲解及
·Qt/Embedded在嵌入式Linux中的应
·Linux系统环境下的Socket编程详
·在 Fedora Core 5 上体验 Aiglx
·使用 Linux 系统调用的内核命令
·Linux 2.6.11内核文件IO系统调用
·在Linux中创建静态库和动态库
·嵌入式Linux:uClinux操作系统移
·Linux操作系统下的多进程编程(
·嵌入式系统 Boot Loader 技术内
·Linux操作系统的源代码目录树结
·Linux用户态与内核态的交互讲解
  相关文章
·介绍B-SHELL的一些运用方法
·Linux程式设计.Shell Script(bas
·Linux程式设计.Shell Script(bas
·嵌入式Linux系统的GDB远程调试的
·关于嵌入式Linux系统进程调度的
·教你一种实现嵌入式Linux系统新
·剖析Linux 2.6内核在嵌入式上的
·主流嵌入式Linux系统下GUI解决方
·嵌入式Linux系统的图像采集与显
·内核空间SMP编程
·剖析RedHat Linux中三个重要内核
·Linux 防火墙在内核中的实现

本站信息源至:互联网络,均为学习,交流所用,如有版权问题,请联系我们.
站长QQ:397422079 E_mail:riechelr_hl@unix5.com
转载本站内容请注明原作者名.谢谢!