shell脚本编程规范与变量
shell的作用:
環(huán)境:
平臺(tái):VMware workstation 14
系統(tǒng):CentOS Linux release 7.4.1708 (Core)
編寫第一個(gè)shell腳本:
?? ? 注: sh為腳本格式 ? first為腳本的名稱?
? first腳本中的內(nèi)容
給所有人加權(quán)
shell腳本的執(zhí)行方式:
1 腳本的路徑
? ?? 絕對(duì)路徑?
? ? ? ? ? ?
? ?? 相對(duì)路徑
? ? ? ? ? ? ? ?
?? 注:必須腳本文件要有執(zhí)行權(quán)限
? ? ? ? ??
2 ? ?? sh 腳本文件路徑
? ? ??
? ?? 注: 如果腳本文件在opt目錄下,? 則: sh /opt/first.sh ? /? 先cd /opt? 再 sh first.sh
3 ?? source 腳本路徑
? ??
注:2 -a 3可以不需要執(zhí)行權(quán)限 ? 1必須要
編寫第二個(gè)shell腳本:
shell腳本的構(gòu)成:
?1? 腳本聲明
? #!/bin/bash ? 聲明后面的命令可以通過(guò)此shell程序去解釋并執(zhí)行
?2? 注釋信息
?? 摘要,腳本作用,參數(shù)說(shuō)明,工作效率,創(chuàng)建日期,作者,版本聲明,第幾次修改,每次返回的動(dòng)態(tài)值的定義等
?3? 可執(zhí)行的命令語(yǔ)句
? ? 注:所有特殊符號(hào)必須是英文模式輸入
實(shí)例1:新建文件
實(shí)例2:刪除文件
實(shí)例3:創(chuàng)建用戶
cat /etc/passwd
實(shí)例4: 創(chuàng)建指定容量的文件
實(shí)例5: 計(jì)劃任務(wù)
crontab -e
每天的下午1點(diǎn)半執(zhí)行2.sh這個(gè)腳本一次
更友好的顯示腳本內(nèi)容:
重定向與管道操作:
實(shí)例6:使用密碼文本文件 修改用戶密碼 ?
解:? 創(chuàng)建一個(gè)密碼文件passwd.txt? 密碼為:123456
tom為已有用戶,將密碼文件導(dǎo)給tom 實(shí)現(xiàn)重置tom的密碼為123456
實(shí)例7:
將ls這條命令的輸出保存到 1.txt文件中
> 覆蓋原有的內(nèi)容
>>? 追加
實(shí)例8:
將標(biāo)準(zhǔn)輸出1.txt? 標(biāo)準(zhǔn)錯(cuò)誤輸出2.txt中
實(shí)例9:
shell變量的作用,類型
自定義變量
聲明變量不需要聲明類型
可以存儲(chǔ)不同類型內(nèi)容 A=wa1
有時(shí)候使用變量時(shí)要明確變量類型
嚴(yán)格區(qū)分大小寫
等于號(hào)兩邊不允許出現(xiàn)空格
不能使用標(biāo)點(diǎn)符號(hào)作為變量名
不能使用bash里面的關(guān)鍵字作為變量名
首個(gè)字符必須是字母(a-z A-Z或_)
格式 ? 變量名=變量值
查看變量:
? ?? echo $變量名
? ?? echo ${變量名}
通過(guò)echo進(jìn)行一個(gè)輸出變量,其中$是引用變量的特殊字符(必須要使用$符號(hào))
注:echo和調(diào)用的變量之間必須要有空格
? ? ?? 當(dāng)需要一起調(diào)用多個(gè)變量時(shí),以空格隔開(kāi)
? ? ? ? 當(dāng)變量名和后面的字符混淆的時(shí)候,應(yīng)使用{ }將變量名括起來(lái)
變量賦值的特殊操作:
1 雙引號(hào) ""
?? 當(dāng)變量值之間有空格的時(shí)候,要使用""括起來(lái)
2 單引號(hào) ' '
禁止引用變量值,將$符號(hào)當(dāng)作普通字符來(lái)使用
3 反撇號(hào) ``
與$() 效果一樣
作用:命令替換,提取命令執(zhí)行的結(jié)果
優(yōu)先執(zhí)行反撇號(hào)里面的內(nèi)容,再執(zhí)行其他
變量賦值的時(shí)候,如果想要賦值的是某條命令執(zhí)行的結(jié)果,必須使用反撇號(hào)
缺點(diǎn):反撇號(hào)部不是現(xiàn)嵌套命令替換操作,這時(shí)候使用$()來(lái)替換
4 交互式賦值 read
read 命令用于提示用戶輸入信息,從而實(shí)現(xiàn)簡(jiǎn)單交互過(guò)程(輸入命令就是一個(gè)交互式過(guò)程)
多個(gè)變量名交互式賦值,賦值之間有空格,變量名也有空格
為了更友好,通常使用-p 來(lái)提示信息
5 設(shè)置變量的作用范圍
export? 變量名 ...
export 變量名=變量值
作用:設(shè)置全局變量,所有子shell程序都可以使用此變量
注:bash為切換環(huán)境 export導(dǎo)為全局變量
永久生效:
vi /etc/profile
export 變量名=變量值
source /etc/profile
整數(shù)變量的運(yùn)算
expr 變量1 運(yùn)算符 變量2 ... ??
$(()) ? ? ? ?? ++? --? **
?
? ? 常用變量:
? ? ? ?? + ? - ?? \* ?? / ? %
環(huán)境變量
配置文件:
全局
單用戶:
?常見(jiàn)的環(huán)境變量
PWD :顯示當(dāng)前所在的工作目錄
USER :? 顯示用戶名稱? 可以查看當(dāng)前登陸的用戶
HOME:? 用戶的家目錄 顯示當(dāng)前用戶的家目錄
LANG: 語(yǔ)言和字符集變量?
PATH: 命令搜索路徑? , 可以用tab鍵補(bǔ)全
PS1: 提示符變量
SHELL:shell程序
位置變量
預(yù)定義變量
轉(zhuǎn)載于:https://blog.51cto.com/14188767/2370525
總結(jié)
以上是生活随笔為你收集整理的shell脚本编程规范与变量的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 深挖 NPM 机制
- 下一篇: 【leetcode】109. Conve