bash(详解)
日期:2008年2月25日 作者: 查看:[大字体 中字体 小字体]-
最简单的例子 —— Hello World!
几乎所有的讲解编程的书给读者的第一个例子都是 Hello World 程序,那么我们今天也就从这个例子出发,来逐步了解 BASH。
用 vi 编辑器编辑一个 hello 文件如下:#!/bin/bash
# This is a very simple example
echo Hello World这样最简单的一个 BASH 程序就编写完了。这里有几个问题需要说明一下:
一,第一行的 #! 是什么意思
二,第一行的 /bin/bash 又是什么意思
三,第二行是注释吗
四,echo 语句
五,如何执行该程序#! 是说明 hello 这个文件的类型的,有点类似于 Windows 系统下用不同文件后缀来表示不同文件类型的意思(但不相同)。linux 系统根据 "#!" 及该字串后面的信息确定该文件的类型,关于这一问题同学们回去以后可以通过 "man magic"命令 及 /usr/share/magic 文件来了解这方面的更多内容。在 BASH 中 第一行的 "#!" 及后面的 "/bin/bash" 就表明该文件是一个 BASH 程序,需要由 /bin 目录下的 bash 程序来解释执行。BASH 这个程序一般是存放在 /bin 目录下,如果你的 Linux 系统比较特别,bash 也有可能被存放在 /sbin 、/usr/local/bin 、/usr/bin 、/usr/sbin 或 /usr/local/sbin 这样的目录下;如果还找不到,你可以用 "locate bash" "find / -name bash 2> /dev/null" 或 "whereis bash" 这三个命令找出 bash 所在的位置;如果仍然找不到,那你可能需要自己动手安装一个 BASH 软件包了。
第二行的 "# This is a ..." 就是 BASH 程序的注释,在 BASH 程序中从“#”号(注意:后面紧接着是“!”号的除外)开始到行尾的多有部分均被看作是程序的注释。的三行的 echo 语句的功能是把 echo 后面的字符串输出到标准输出中去。由于 echo 后跟的是 "Hello World" 这个字符串,因此 "Hello World"这个字串就被显示在控制台终端的屏幕上了。需要注意的是 BASH 中的绝大多数语句结尾处都没有分号。
如何执行该程序呢?有两种方法:一种是显式制定 BASH 去执行:
$ bash hello 或
$ sh hello (这里 sh 是指向 bash 的一个链接,“lrwxrwxrwx 1 root root 4 Aug 20 05:41 /bin/sh -> bash”)或者可以先将 hello 文件改为可以执行的文件,然后直接运行它,此时由于 hello 文件第一行的 "#! /bin/bash" 的作用,系统会自动用/bin/bash 程序去解释执行 hello 文件的:
$ chmod u+x hello
$ ./hello此处没有直接 “$ hello”是因为当前目录不是当前用户可执行文件的默认目录,而将当前目录“.”设为默认目录是一个不安全的设置。
需要注意的是,BASH 程序被执行后,实际上 linux 系统是另外开设了一个进程来运行的。
变量和运算
我们先来从整体上把握一下 BASH 中变量的用法,然后再去分析 BASH 中变量使用与 C 语言中的不同。BASH 中的变量都是不能含有保留字,不能含有 "-" 等保留字符,也不能含有空格。
简单变量
在 BASH 中变量定义是不需要的,没有 "int i" 这样的定义过程。如果想用一个变量,只要他没有在前面被定义过,就直接可以用,当然你使用该变量的第一条语句应该是对他赋初值了,如果你不赋初值也没关系,只不过该变量是空( 注意:是 NULL,不是 0 )。不给变量赋初值虽然语法上不反对,但不是一个好的编程习惯。好了我们看看下面的例子:首先用 vi 编辑下面这个文件 hello2:
#!/bin/bash
- [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] 下一页
-
- bash(详解) 相关文章:
- ·详解Alexa网站流量排名
- ·Linux系统网络配置详细解析
- ·详解服务器集群系统实现方案
- ·.travel旅游域名注册详细放宽条件首次批露
- ·路由器性能和指标详解
- ·还原Vista隐藏更新严查详情
- ·详细分析操作系统死机的问题
- ·Office 2007 SP1详情 安装指导
- ·关于Photoshop直方图的详细讨论
- ·瑞星杀毒2008主动防御的详细设置
- bash(详解) 相关软件
- ·《仙剑奇侠传四》详细迷宫完全攻略
- ·杜诗详注
- ·菜鸟TO高手-windows配置优化详解
- ·实用C语言详解
- ·网络端口详解
- ·同等学力3月29日英语模考试题详解
- ·同等学力口语实战手册 练习详细解析
- ·MBA管理学不确定型决策方案计算题详解
- ·MBA英语语法-词性详解
- ·2004年考研数学试题分析、详解及评注
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
上一篇:gnome下的软件
下一篇:实现Hex和Dec转换
精品推荐
热点TOP10
- ·RedHat Linux常见的日志文件和常用命令
- ·bash(详解)
- ·Linux发行版图标大全
- ·Pure lfs 安装手记
- ·600个优秀网站
- ·Linux内核调试器内幕
- ·Linux常用命令详解
- ·Linux硬件管理的基础知识
- ·菜鸟文本模式安装Fedora Core 4.0教程
- ·车干子的openldap的详细配置
- ·Linux下通用线程池的创建与使用
- ·wxPython 入门
- ·在Linux服务器上做备份和恢复
- ·Linux创建文件系统及挂载文件系统流程
- ·VIA-威盛南桥集成AC97声卡驱动安装指南
- ·Eclipse入门-- Eclipse的使用简介及插件开发
- ·Linux的发行版制作简要过程
- ·Linux中ext2、ext3及reiserfs文件系统概述
- ·使用 sed 编辑器
- ·Linux系统下DNS服务器的配置
特别推荐
- ·Linux常用命令详解
- ·Linux操作系统下用单网卡捆绑双IP
- ·恢复被误删除的Linux文件
- ·在Linux服务器上做备份和恢复
- ·Linux中网络参数的意义及其应用
- ·linux知识大全
- ·解析Linux服务器远程控制技术
- ·新手关于Linux系统的一些错误认识
- ·Linux系统至少有五大点比Vista更好
- ·Linux攻略 关于Apache安装、配置、优化
- ·详细讲解Linux操作系统的进程管理的功能
- ·解决Linux和Windows双系统的引导问题
- ·新手学堂:Linux操作系统安全性能检查笔记
- ·600个优秀网站
- ·提高Linux操作系统网速的方法
- ·Linux系统下挂载硬盘光驱和U盘的方法
- ·Linux发行版图标大全
- ·优化Linux系统资源和加快启动速度的方法
- ·新手学堂 Linux操作系统的内核编译步骤
- ·网卡设置常见问题
