今天就跟大家聊聊有關(guān)如何使用shell腳本語言,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
創(chuàng)新互聯(lián)公司專注于企業(yè)成都營銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、商州網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、商城建設(shè)、集團公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為商州等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。shell 是一種腳本語言
腳本:本質(zhì)是一個文件,文件里面存放的是 特定格式的指令,系統(tǒng)可以使用腳本解析器 翻譯或解析 指令 并執(zhí)行(它不需要編譯)
shell 既是應(yīng)用程序 又是一種腳本語言(應(yīng)用程序 解析 腳本語言)
shell命令解析器:
系統(tǒng)提供 shell命令解析器: sh ash bash
查看自己linux系統(tǒng)的默認解析:echo $SHELL
shell腳本是一種腳本語言,我們只需使用任意文本編輯器,按照語法編寫相應(yīng)程序,增加可執(zhí)行權(quán)限,即可在安裝shell命令解釋器的環(huán)境下執(zhí)行
打開終端時系統(tǒng)自動調(diào)用:/etc/profile 或 ~/.bashrc
/etc/profile
此文件為系統(tǒng)的每個用戶設(shè)置環(huán)境信息,當用戶第一次登錄時,該文件被執(zhí)行,系統(tǒng)的公共環(huán)境變量在這里設(shè)置
開始自啟動的程序,一般也在這里設(shè)置
~/.bashrc
用戶自己的家目錄中的.bashrc
登錄時會自動調(diào)用,打開任意終端時也會自動調(diào)用
這個文件一般設(shè)置與個人用戶有關(guān)的環(huán)境變量,如交叉編譯器的路徑等等
用戶手動調(diào)用:用戶實現(xiàn)的腳本
3.1、定義以開頭:#!/bin/bash
#!用來聲明腳本由什么shell解釋,否則使用默認shell
3.2、單個"#"號代表注釋當前行第一步:編寫腳本文件
第二步:加上可執(zhí)行權(quán)限
chmod +x xxxx.sh
第三步:運行
三種執(zhí)行方式 (./xxx.sh bash xxx.sh . xxx.sh)
三種執(zhí)行方式的不同點(./xxx.sh bash xxx.sh . xxx.sh)
./xxx.sh :先按照 文件中#!指定的解析器解析
如果#!指定指定的解析器不存在 才會使用系統(tǒng)默認的解析器
bash xxx.sh:指明先用bash解析器解析
如果bash不存在 才會使用默認解析器
. xxx.sh 直接使用默認解析器解析
三種執(zhí)行情況:(重要)
注意:windows下 寫腳本 在linux下執(zhí)行 注意
執(zhí)行結(jié)果:
將windows文件 轉(zhuǎn)換成 unix文件
方法一:dos2unix 如果沒有該插件 需要安裝
sudo apt-get install dos2unix
dos2unix shell腳本
轉(zhuǎn)換成功就可以執(zhí)行運行
方法二:
需要用vi打開腳本,在最后一行模式下執(zhí)行
:set ff=unix
定義變量
變量名=變量值
如:num=10
引用變量
$變量名
unset :清除變量值
運行結(jié)果:
從鍵盤獲取值read
運行結(jié)果:
案例:
在一行上顯示和添加提示 需要加上-p
運行結(jié)果:
案例:讀取多個值
運行結(jié)果:
案例只讀變量:
運行結(jié)果:
查看環(huán)境變量:env
導(dǎo)出環(huán)境變量(其他shell識別該變量)
source 腳本文件
source命令用法:
source FileName
作用:在當前bash環(huán)境下讀取并執(zhí)行FileName中的命令。
注:該命令通常用命令“.”來替代。
如:source .bash_rc 與 . .bash_rc 是等效的。
注意:source命令與shell scripts的區(qū)別是,
source在當前bash環(huán)境下執(zhí)行命令,而scripts是啟動一個子shell來執(zhí)行命令。這樣如果把設(shè)置環(huán)境變量(或alias等等)的命令寫進scripts中,就只會影響子shell,無法改變當前的BASH,所以通過文件(命令列)設(shè)置環(huán)境變量時,要用source 命令。
可以在終端中讀?。?/p>
在其他sh腳本讀?。?/p>
運行結(jié)果:
注意事項:
1、變量名只能包含英文字母下劃線,不能以數(shù)字開頭
1_num=10 錯誤
num_1=20 正確
2、等號兩邊不能直接接空格符,若變量中本身就包含了空格,則整個字符串都要用雙引號、或單引號括起來
3、雙引號 單引號的區(qū)別
雙引號:可以解析變量的值
單引號:不能解析變量的值
運行結(jié)果:
如果想在PATH變量中 追加一個路徑寫法如下:(重要?。。。。?/p>
export PATH=$PATH:/需要添加的路徑
shell直接提供無需定義的變量
案例:
運行結(jié)果:
腳本標量的特殊用法
加-e轉(zhuǎn)義 才起換行作用
()由子shell 完成
{}由當前的shell執(zhí)行
6.1、判斷變量是否存在
6.2、字符串的操作
test命令:用于測試字符串、文件狀態(tài)和數(shù)字
test命令有兩種格式:
test condition 或[ condition ]
使用方括號時,要注意在條件兩邊加上空格。
7.1、文件測試
7.2、字符串測試
7.3、數(shù)值測試
7.4、符合語句測試
8.1、if控制語句
格式一: if [條件1]; then 執(zhí)行第一段程序 else 執(zhí)行第二段程序 fi 格式二: if [條件1]; then 執(zhí)行第一段程序 elif [條件2];then 執(zhí)行第二段程序 else 執(zhí)行第三段程序 fi
案例:
案例:判斷當前路徑下有沒有文件夾 有就進入創(chuàng)建文件 沒有 就創(chuàng)建文件夾 再進入創(chuàng)建文件
運行結(jié)果:
案例:
運行結(jié)果:
8.2、case
8.3、for循環(huán)語句
案例:
案例:掃描當前文件
8.4、while
8.5、until
8.6、break continue
所有函數(shù)在使用前必須定義,必須將函數(shù)放在腳本開始部分,直至shell解釋器首次發(fā)現(xiàn)它時,才可以使用
案例:求最值
案例:函數(shù)分文件
fun.sh
24_sh.sh
看完上述內(nèi)容,你們對如何使用shell腳本語言有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。