概念
1、shell 脚本第一行 #!后面的!来告诉shell用哪个shell来运行脚本,可以使用base shell
2、环境变量:$ 符号
3、用户变量 : 区分大小写
group=mysql
user=mysql
语法:
1、cat << EOF > /etc/my.cnf
EOF 结束符可将指定内容输入到指定的文件中
cat << EOF > /etc/my.cnf
[mysqld]
port=3306
!includedir /etc/my.cnf.d
EOF
2、命令替代
可以将命令输出赋值给变量
反引号(``)和$()
password=`cat $basedir/initinfo | grep password | awk -F " " {'print $NF'}`
3、if else-if else
if else-if else
if else-if else 语法格式:
if condition1
then
command1
elif condition2
then
command2
else
commandN
fi
4、文件比较
1、检测目标 -d检测目录是否存在
2、检测对象 -e比较文件和目录是否存在
3、检测文件 -e比较可用于文件目录。确定指定对象为文件,必须用 -f 比较
#!/bin/bash
item_name=$HOME
if [-e $item_name]
then
.....
if[-e $item_name]
then...
5、使用双括号
(()) [[]]
()里面的特殊字符可以不用转义
[]: 提供了模式匹配
if[[$SURE == r*]] 是否已r 开头
6、sed
s: / 第二个字符串代替第一个字符串
e: sed命令上执行多个命令,命令之间用 分号 隔开
替换选项
g: 新文本将会替换所有匹配的旧文本
p: 原先行的内容要打印出来
w file:将替换结果写在文件中
替换字符
/ 转义
d: 删除行
sed 'number 1/d' data6.txt // sed 编辑器不会删除原始文件,只是在sed 编辑器中消失
插入和附加文本
i: 会在指定的行前添加一行
a: 会在指定的行后添加一行
echo "test line 1" | sed 'i\Test Line 1'
修改行