关于bash
bash的内部命令:shell在启动时就调入内存。
bash的外部命令:使用时才从硬盘中读入内存。
命令通配符:
? : 匹配任意一个字符
[] : 匹配括号中的任意单字符
* : 匹配任何的字符或者字符串,包括空字符串
shell程序
shell程序本质是普通文本文件,加上可执行权限后可以让shell执行文本中的程序。
t.sh:
shell语言是一种解释型语言,
shell变量有:局部变量、环境变量、位置变量。
shell变量没有数据类型,变量赋值之后只需要加上$即可使用,不带空格的字符串可以不加引号。
环境变量的定义:export var=value
输出:echo $var (重启失效)
在/etc/profile中可以定义环境变量
位置变量:在shell程序运行时传入的参数
$n
n:1–9
shell算术运算符中的**
代表两个变量的幂运算。
echo中的输出字符
\c:末尾加上\c表示这一行输出完毕以后不换行
read命令可以读取标准输入到一个变量。
commond 1 > filename 标准输出重定向到文件中
commond 2 > filename 标准输出的错误重定向到文件中
commond > filename 2>&1 标准输出和标准错误重定向到文件中
$ ls > doc2 2>&1
command < filename1 > filename2 将file1作为标准输入,file2作为标准输出
双引号和单引号的区别:
test测试命令
- 文件状态测试:指的是对文件的权限、有无、属性、类型等内容进行判断
- 数值比较
symbol | effect |
eq | equal 相等 |
ne | not eqaul 不等 |
le | less or equal 小于等于 |
ge | greater or equal 大于等于 |
gt | greater than 大于 |
lt | less than 小于 |
* 逻辑测试
symbol | effect |
a | and 逻辑与 |
o | or 逻辑或 |
! | 非 逻辑否 |
* 字符串比较
symbol | effect |
= | 相等 |
!= | 不等 |
-z | 空串 |
-n | 非空 |
流程控制
if 语句
格式:
for循环
格式:
until循环——直到条件成真的时候才停下来。
格式:
while循环
练习
- 写一个判断文件读,写,可执行的权限shell脚本
- 打印当前目录下所有的shell脚本文件
- 每0.5秒执行一次ls命令