1 PATH环境变量
2 重定向的使用
0 标注输入 默认键盘输入,可以用其他内容来重定向
1 标准输出 屏幕上的正确输出
2 错误输出 屏幕上的错误输出
&> 重定向全部输出
重定向符号有:
> >>
2>&1 表示将错误的输出重定向为标准输出
例1
find /etc/ -name "*.conf" >> /tmp/file1 2>&1
例2
使用cat命令来演示重定向功能
cat > /tmp/file.txt << endf
hello world
endf
3 注意脚本中的特殊字符
4 ``与$()执行命令
5 变量调用的标准方式是 ${VARNAME},通常花括号被省略了
6 seq命令生成序列
7 $(())和$[]命令用于计算
8 for循环
for VAR in LIST;do
COMMOND
done
9 脚本调式使用bash -x选项
10 位置变量
$0 表示脚本名
$# 传递的参数个数
$* 全部参数,是一次全取出来
$@ 也表全部参数,但是一个一个的取
11 命令的退出状态 $? ;0表示正确,非0表示错误
exit 数字 可以在脚本中指定退出状态
12 脚本中的判断
[ EXPRESSION ]或着test命令 用来做条件判断
判断的运算符有很多:
1)整数比较
-eq
-ne
-gt
-ge
-lt
-le
2)字符串比较
== 等
!= 不等
3)字符串求值
-z 字符串为空
-n 字符串不为空
4)文件的比较
-b 块文件
-c 字符文件
-d 目录
-e 文件存在
-f 常规文件
-L 符号链接文件
-r 有读权限的文件
-w 有写权限的文件
-x 有执行权限的文件
-s 文件大小大于零
-ef FILE1与FILE2的设备和索引节点编号相同
-nt FILE1的修改日期比FILE2晚
-ot FILE1的修改日期比FILE2早
5)逻辑运算
&& 与
|| 或
13 条件结构
1)if语句
if CONDITION1;then
STATeMENT
elif CONDITION2;then
STATEMENT
else
STATEMENT
fi
2)case语句
case VALUE in
PATTERN1)
STATEMENT
...
STATEMENT
;;
PATTERN2)
STATEMENT
...
STATEMENT
;;
PATTERN3|PATTERN4)
STATEMENT
...
STATEMENT
;;
[a-z])
STATEMENT
;;
[0-9])
STATEMENT
;;
*)
STATEMENT
;;
esac
14 while循环语句
while CONDITION
do
STATEMENT
done
此外,还有个常用的按行读取的用法:
while read CONDITION
do
STATEMENT
done < INPUTSTREAM
15 关于环境变量
shell和脚本使用变量存储数据,某些变量可以与其内容一起传递到子进程,这些特殊的变量称为环境变量。通过export命令将变量标记为环境变量。
环境变量的一个使用场景就是用户登陆后初始化shell环境。通常执行的shell环境初始化脚本有(执行的顺序由上往下):
/etc/profile #系统环境变量
|__ /etc/profile.d
~/.bash_profile #用户环境变量
|__ ~/.bashrc
|__ /etc/bashrc
登陆脚本一般分两种类型:配置文件和rc文件。
配置文件用于设置和导出环境变量,以及运行仅应在登陆后运行的命令;
rc文件(如,/etc/bashrc)用于运行命令,设置别名,定义函数以及无法导出到子shell的其他设置。
通常,配置文件仅在登陆shell中执行,而每次创建shell时执行rc文件。
16 别名alias
#生成别名
alias NEWCMD='CMDS'
#取消别名
unalias NEWCMD
17 使用函数
函数是一种隔离代码段的方法,可以用来重复调用而无需重新编写同样功能的代码
funcname() {
STATEMENTS
}