• <td id="ssscw"></td>
  • 北京Linux培訓
    達內北京天壇中心

    010-62126400

    北京linux培訓 > linux知識庫 >達內北京Linux培訓班:5分鐘進階 Linux Bash腳本

    達內北京Linux培訓班:5分鐘進階 Linux Bash腳本

    • 時間:2020-12-17 15:46
    • 發布:北京linux培訓
    • 來源:linux知識庫

    5分鐘進階 Linux Bash腳本,下面和達內北京Linux培訓機構一起來看看吧!

    腳本安全

    我的所有bash腳本都以下面幾句為開場白:

    達內北京Linux培訓機構

    這樣做會避免兩種常見的問題:

    引用未定義的變量(缺省值為“”)

    執行失敗的命令被忽略

    需要注意的是,有些Linux命令的某些參數可以強制忽略發生的錯誤,例如“mkdir -p” 和 “rm -f”。

    還要注意的是,在“errexit”模式下,雖然能有效的捕捉錯誤,但并不能捕捉全部失敗的命令,在某些情況下,一些失敗的命令是無法檢測到的。(更多細節請參考這個帖子。)

    腳本函數

    在bash里你可以定義函數,它們就跟其它命令一樣,可以隨意的使用;它們能讓你的腳本更具可讀性:

    達內北京Linux培訓機構

    還有一些例子:

    達內北京Linux培訓機構

    盡可能的把你的bash代碼移入到函數里,僅把全局變量、常量和對“main”調用的語句放在最外層。

    變量注解

    Bash里可以對變量進行有限的注解。最重要的兩個注解是:

    local(函數內部變量)

    readonly(只讀變量)

    這樣,你可以將一個以前不是只讀變量的變量聲明成只讀變量:

    盡量對你bash腳本里的所有變量使用local或readonly進行注解。

    用$()代替反單引號(`)

    反單引號很難看,在有些字體里跟正單引號很相似。$()能夠內嵌使用,而且避免了轉義符的麻煩。

    用[[]](雙層中括號)替代[]

    使用[[]]能避免像異常的文件擴展名之類的問題,而且能帶來很多語法上的改進,而且還增加了很多新功能:

    單中括號:

    雙中括號

    正則表達式/Globbing

    使用雙中括號帶來的好處用下面幾個例子最能表現:

    注意,從bash 3.2版開始,正則表達式和globbing表達式都不能用引號包裹。如果你的表達式里有空格,你可以把它存儲到一個變量里

    按Globbing方式的字符串比較也可以用到case語句中:

    字符串操作

    Bash里有各種各樣操作字符串的方式,很多都是不可取的。

    基本用戶

    替換操作(使用globbing)

    刪除頭部或尾部(使用globbing)

    避免使用臨時文件

    有些命令需要以文件名為參數,這樣一來就不能使用管道。這個時候?<()?就顯出用處了,它可以接受一個命令,并把它轉換成可以當成文件名之類的什么東西:

    還有一個非常有用處的是”here documents”,它能讓你在標準輸入上輸入多行字符串。下面的’MARKER’可以替換成任何字詞。

    如果文本里沒有內嵌變量替換操作,你可以把第一個MARKER用單引號包起來:

    內置變量

    提示:

    使用$*很少是正確的選擇。

    $@能夠處理空格參數,而且參數間的空格也能正確的處理。

    使用$@時應該用雙引號括起來,像”$@”這樣。

    調試

    對腳本進行語法檢查:

    跟蹤腳本里每個命令的執行:

    跟蹤腳本里每個命令的執行并附加擴充信息:

    你可以在腳本頭部使用set -o verbose和set -o xtrace來永久指定-v和-o。當在遠程機器上執行腳本時,這樣做非常有用,用它來輸出遠程信息。

    什么時候不應該使用bash腳本

    你的腳本太長,多達幾百行

    你需要比數組更復雜的數據結構

    出現了復雜的轉義問題

    有太多的字符串操作

    不太需要調用其它程序和跟其它程序管道交互

    擔心性能

    這個時候,你應該考慮一種腳本語言,比如Python或Ruby。(本文來源網絡)

    達內北京Linux培訓機構為幫助零基礎想轉行的學員選對方向,特推出為期5天26門熱門互聯網技術任意免費學,12月免費課程搶先中!運維技術免費學,莫錯良機!

    上一篇:一篇讓運維小白徹底搞懂性能調優的文章,值得收藏
    下一篇:網絡故障的“坑”,達內北京Linux培訓班全幫你分析清楚了!

    馬上預約七天免費體驗課

    姓名:

    電話:

    運維加固Linux工作站的 6 個方法!

    達內北京Linux培訓班:另類解說秒懂云計算

    達內北京linux培訓:7 款數據恢復工具助你“保命”

    能讓運維技術迅速 Up 的 5 個技能!

    • 關注微信公眾號

      回復關鍵字:視頻資料

      免費領取 達內課程視頻學習資料

    • 視頻學習QQ群

      添加QQ群:1143617948

      免費領取達內課程視頻學習資料

    Copyright ? 2018 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

    選擇城市和中心
    江西省

    貴州省

    廣西省

    海南省

    中国农村夫妇做人爱视频,亚洲91在线97,欧美色在线精品视频,7m视频最新的路线二