BASH的基本语法

参考资料

之前更多的是直接使用Linux命令组合,对shell命令的使用比较少,都是有需求临时百度,没有系统的了解过,趁此机会,系统了解一下bash。

目录

  • 最简单的例子 —— Hello World!
  • 关于输入、输出和错误输出
  • BASH 中对变量的规定(与 C 语言的异同)
  • BASH 中的基本流程控制语法
  • 函数的使用

1.最简单的例子 —— Hello World!

几乎所有的讲解编程的书给读者的第一个例子都是 Hello World 程序,那么我们今天也就从这个例子出发,来逐步了解 BASH。

用 vi 编辑器编辑一个 hello 文件如下:

1
2
3
#!/bin/bash   #第一行说明文件的类型,Linux系统根据 "#!" 及该字串后面的信息确定该文件的类型
# This is a very simple example #在 BASH 程序中从“#”号(注意:后面紧接着是“!”号的除外)开始到行尾的多有部分均被看作是程序的注释。
echo Hello World #bash的执行命令

如何执行该程序呢?有两种方法:一种是显式制定 BASH 去执行:

bash hellosh hello (这里 sh 是指向 bash 的一个链接,“lrwxrwxrwx 1 root root 4 Aug 20 05:41 /bin/sh -> bash”)

或者可以先将 hello 文件改为可以执行的文件,然后直接运行它,此时由于 hello 文件第一行的 “#! /bin/bash” 的作用,系统会自动用/bin/bash 程序去解释执行 hello 文件的:

1
2
3
#! bash
chmod +x hello
./hello

此处没有直接 “$ hello”是因为当前目录不是当前用户可执行文件的默认目录,而将当前目录“.”设为默认目录是一个不安全的设置。

需要注意的是,BASH 程序被执行后,实际上 Linux 系统是另外开设了一个进程来运行的。

2. 关于输入、输出和错误输出

在 Linux 系统中:标准输入(stdin)默认为键盘输入;标准输出(stdout)默认为屏幕输出;标准错误输出(stderr)默认也是输出到屏幕(上面的 std 表示 standard)。在 BASH 中使用这些概念时一般将标准输出表示为 1,将标准错误输出表示为 2。

1
2
3
4
5
# 不常用的方法
n<&- #表示将 n 号输入关闭
<&- #表示关闭标准输入(键盘)
n>&- #表示将 n 号输出关闭
>&- #表示将标准输出关闭

33. BASH 中对变量的规定

BASH 中的变量都是不能含有保留字,不能含有 “-“ 等保留字符,也不能含有空格。

简单变量

在 BASH 中变量定义是不需要的,没有 “int i” 这样的定义过程。如果想用一个变量,只要他没有在前面被定义过,就直接可以用,当然你使用该变量的第一条语句应该是对他赋初值了,如果你不赋初值也没关 系,只不过该变量是空( 注意:是 NULL,不是 0 )。不给变量赋初值虽然语法上不反对,但不是一个好的编程习惯。好了我们看看下面的例子:

-------------本文结束感谢您的阅读-------------