格式
#!/bin/bash
#磁椒!幻數(shù) 指定腳本用的命令解釋器
執(zhí)行腳本
sh
sh +x
1走越、為什么要學(xué)習(xí)shell編程?
Linux系統(tǒng)中會大量的使用Shell贩耐,工作中我們也需要自動化實現(xiàn)業(yè)務(wù)弧腥,例如:自動備份、監(jiān)控潮太、自動安裝服務(wù)
Shell編程是Linux運維人員必須要會編程語言管搪。最簡單的編程語言。
編程也是運維人員必須具備的本領(lǐng):
Shell铡买、python是運維人員必須具備的本領(lǐng)
2更鲁、什么是Shell?
shell就是一個解釋器(翻譯官),命令行的命令以及腳本都會通過shell解釋奇钞,傳給操作系統(tǒng)澡为,處理后在輸出給用戶。
3景埃、Shell的分類
/bin/sh媒至、/bin/bash顶别、/usr/bin/sh、/usr/bin/bash
4拒啰、CentOS7默認(rèn)腳本是Shell
[root@zhang ~]# echo $SHELL
/bin/bash
5驯绎、什么是Shell腳本?
程序谋旦、命令放入文件里執(zhí)行剩失,這個文件稱之為Shell腳本文件。
工作中最多的編程寫腳本册着,存放在文件里拴孤。
二、變量
1.變量
方便腳本里面進(jìn)行重復(fù)使用
命名規(guī)則
看見變量名稱 識別變量作用
不能以數(shù)字開頭
變量分類
局部變量(普通變量)
IP=10.0.0.200
time=2019-01-01
全局變量(環(huán)境變量)
系統(tǒng)創(chuàng)建
在整個系統(tǒng)中生效
大部分地方意思一樣
一般是大寫
特殊變量
\$? 數(shù)字 \$# \$*
2.局部變量(普通變量)
3.引號系列
4.特殊變量
5.局部變量和全局變量區(qū)別:
[root@m01 /server/scripts]# LIDAO=996
[root@m01 /server/scripts]#
[root@m01 /server/scripts]# echo $LIDAO
996
[root@m01 /server/scripts]# cat show.sh
#!/bin/bash
echo $LIDAO
[root@m01 ~]# sh show.sh \\執(zhí)行腳本為空
[root@m01 ~]#
[09:17 root@m01 ~]# export LIDAONB \\添加全局變量
[09:22 root@m01 ~]# echo $LIDAONB
666
[09:22 root@m01 ~]# sh show.sh
666
6.局部變量和全局變量區(qū)別
https://www.processon.com/view/link/5a0e4380e4b06c8e10923353
7.awk的 -v 參數(shù)
[09:49 root@m01 ~]# x=10
[09:49 root@m01 ~]# y=99
[09:49 root@m01 ~]# echo $x
10
[09:49 root@m01 ~]# echo $y
99
[09:49 root@m01 ~]# awk 'BEGIN{print $x/$y}'
awk: cmd. line:1: fatal: division by zero attempted
[09:49 root@m01 ~]# awk -vn1=10 -vn2=99 'BEGIN{print n1/n2}'
0.10101
[09:51 root@m01 ~]# awk -vn1=$x -vn2=$y 'BEGIN{print n1/n2}'
0.10101
[09:51 root@m01 ~]# awk -vx=10 -vy=99 'BEGIN{print x/y}'
0.10101
[09:53 root@m01 ~]#
8.利用shell編譯小型計算器
[10:18 root@m01 ~]# vim show.sh
#!/bin/bash
. /etc/profile
x=$1
y=$2
echo $1\+$2= ;awk -vx=$x -vy=$y 'BEGIN{print x+y}'
echo $1\-$2= ;awk -vx=$x -vy=$y 'BEGIN{print x-y}'
echo $1\*$2= ;awk -vx=$x -vy=$y 'BEGIN{print x*y}'
echo $1\/$2= ;awk -vx=$x -vy=$y 'BEGIN{print x/y}'
[10:19 root@m01 ~]# sh show.sh 5 6
5+6=
11
5-6=
-1
5*6=
30
5/6=
0.833333
知識有限暫不支持小數(shù)運算
9.特殊變量中簡單判斷參數(shù)個數(shù):
10.判斷目錄存不存在指蚜,不存在就創(chuàng)建
三乞巧、判斷語句
if判斷句語法:單分支: 如果。摊鸡。绽媒。那么就
if [ 表達(dá)式 ]
then命令
else
exit 退出
fi 果如
1.if語句格式:
if [ 表達(dá)式 ]
then命令
exit 退出
fi
2.對比兩個數(shù)值大小
3.檢查定時任務(wù)是否運行中
避免過濾的時候 過濾掉grep命令自己
四、循環(huán)語句
for語句
五免猾、擴(kuò)展:
read命令
從鍵盤讀取變量的值是辕,通常用在shell腳本中與用戶進(jìn)行交互的場合。該命令可以一次讀取多個變量的值猎提,變量和輸入的值都需要使用空格隔開获三。在read命令后面,如果沒有指定變量名锨苏,讀取的數(shù)據(jù)將被自動賦值給特定的變量REPLY
-p:指定讀取值時的提示符疙教;
-t:指定讀取值時等待的時間(秒)。
總結(jié):
1.變量 特殊變量 $# $* $1 $0
2.判斷與循環(huán)
服務(wù)腳本
任務(wù):
批量添加用戶設(shè)置隨機(jī)密碼 for循環(huán)實現(xiàn)
批量修改文件名字 for/rename
touch /oldboy/oldboy.txt 批量.txt修改為.jpg
未完待續(xù)....