1 简单地说,shell就是命令解析器,将用户输入的指令转换为相应的机器能够运行的程序。
2 Shell是Linux系统中的一个重要的层次,它是用户与系统交互作用的界面。
Shell除了作为命令解释程序以外,还是一种高级程序设计语言。利用Shell程序设计语言可以编写出功能很强、但代码简单的程序。
3 shell脚本是一个包含一系列命令序列的文本文件。当运行这个脚本文件时,文件中包含的命令序列将得到执行。
4 Shell过程的建立和执行
称作Shell文件或者Shell脚本(Shell script)。
建立Shell过程的步骤同建立普通文本文件相同,利用编辑器(如vi或gedit)进行程序录入和编辑加工。
shell脚本的第一行必须是如下模式:
#!/bin/sh 符号#!用来指定该脚本文件的解析程序。
当编辑好脚本后,如果要执行该脚本,还必须使其具有可执行属性: chmod +x filename。
然后./filename 脚本就可以执行了。
5 在shell编程中,所有的变量都由字符串组成,并且不需要预先对变量进行声明。例:
#!/bin/sh
#set variable a
a="hello world"
#print a
echo "A is:"
echo $a
6 定义变量并赋值的一般形式是
变量名=字符串
例如,myfile=/home/lcd/ff/m1.c。
7 用echo命令显示变量值。
dir=/home/lcd/ff
echo $dir
/home/lcd/ff
echo dir
dir
8 输入/输出命令
1. read命令
可以利用read命令由标准输入读取数据,然后赋给指定的变量。其一般格式是
read 变量1 变量2…
2. echo命令
在前面例子中已使用过echo命令,它将其后的参数在标准输出上输出。各参数间以空格隔开,以换行符终止。
9 Shell中的特殊字符
Shell中除使用普通字符外,还使用了一些特殊字符,它们有特定的含义,在使用时应注意它们表示的意义和作用范围。
通配符 * ?
通配符用于模式匹配,如文件名匹配、路径名搜索、字符串查找等。
* 代表0个或多个字符
?代表一个字符
例:
ls 11*2?3 显示11开头的接着是若干个字符,最后是2加一个字符和3结束的文件
ls /etc/[0-9]* 将列出 /etc 中以数字开头的所有文件。
10 引号
在Shell中引号分为2种:单引号、双引号。
(1)双引号
由双引号括起来的字符,除$、倒引号和反斜线(\)仍保留其特殊功能外,其余字符通常作为普通字符对待。
(2)单引号
由单引号括起来的字符都作为普通字符出现。
11 注意
1 变量赋值时,“=”左右两边都不能有空格
2 BASH中的语句结尾不需要分号
3 函数名跟大括号之间要有空格