概念
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'
修改行