成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

GitHub星數1.3W!五分鐘帶你搞定Bash腳本使用技巧

新聞
Bash腳本比我們想象中的都要強大,通過Bash腳本,大多數任務都可以讓你在無任何其它語言或第三方依賴的安裝環境下,快速寫出腳本程序。

 Bash腳本比我們想象中的都要強大,通過Bash腳本,大多數任務都可以讓你在無任何其它語言或第三方依賴的安裝環境下,快速寫出腳本程序。

在Bash中調用外部進程是非常繁瑣的,過度調用會導致明顯的減速,通過內置方法編寫的腳本和程序會更快,所需的依賴也會更少,并且幫助你更好的理解編程語言。

[[272526]]

 

有位澳大利亞工的程師在Github上開源了一本書——《pure bash bible》

 

目前,這本書已經在Github上獲得 13148 個Star,905 個Fork(Github地址:https://github.com/dylanaraps/pure-bash-bible)

本書收集匯總了編寫 bash 腳本經常會使用到的一些代碼片段,無論是常見和不太常見的方法都可以在這書里找到,通過書中的代碼片段,可以刪除腳本中的依賴項,并且在大多數情況下可以讓程序運行的更快。

書中依照字符串、數組、正則表達式、文件處理、變量等腳本程序的常用功能進行分類,每個分類下都提供了具體 bash 代碼實現。

刪除字符串前后空格:

例如,下面的函數通過查找字符串前后空格字符,并把它們移除。以下為功能使用:

  1. trim_string() { 
  2.     # Usage: trim_string "   example   string    " 
  3.     : "${1#"${1%%[![:space:]]*}"}" 
  4.     : "${_%"${_##*[![:space:]]}"}" 
  5.     printf '%s\n' "$_" 

示例:

  1. $ trim_string "    Hello,  World    " 
  2. Hello,  World 
  3.  
  4. name="   John Black  " 
  5. $ trim_string "$name" 
  6. John Black 

在字符串上使用正則表達式:

  1. regex() { 
  2.     # Usage: regex "string" "regex" 
  3.     [[ $1 =~ $2 ]] && printf '%s\n' "${BASH_REMATCH[1]}" 

用法示例:

  1. $ # Trim leading white-space
  2. $ regex '    hello' '^\s*(.*)' 
  3. hello 
  4.  
  5. $ # Validate a hex color. 
  6. $ regex "#FFFFFF" '^(#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3}))$' 
  7. #FFFFFF 
  8.  
  9. $ # Validate a hex color (invalid). 
  10. $ regex "red" '^(#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3}))$' 
  11. no output (invalid) 

腳本的示例用法:

  1. is_hex_color() { 
  2.     if [[ $1 =~ ^(#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3}))$ ]]; then 
  3.         printf '%s\n' "${BASH_REMATCH[1]}" 
  4.     else 
  5.         printf '%s\n' "error: $1 is an invalid color." 
  6.         return 1 
  7.     fi 
  8.  
  9. read -r color 
  10. is_hex_color "$color" || color="#FFFFFF" 
  11.  
  12. # Do stuff. 

刪除重復的數組:

  1. remove_array_dups() { 
  2.     # Usage: remove_array_dups "array" 
  3.     declare -A tmp_array 
  4.  
  5.     for i in "$@"; do 
  6.         [[ $i ]] && IFS=" " tmp_array["${i:- }"]=1 
  7.     done 
  8.  
  9.     printf '%s\n' "${!tmp_array[@]}" 

用法示例:

  1. $ remove_array_dups 1 1 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 5 
  2.  
  3. $ arr=(red red green blue blue) 
  4. $ remove_array_dups "${arr[@]}" 
  5. red 
  6. green 
  7. blue 

本書完整的腳本功能的代碼片段如下:

 

關于作者

[[272527]]

 

Dylan Araps是來自澳大利亞墨爾本的開源開發人員,從小就對開源產生了極大的熱情,多年來開源了許多項目,14歲,就離開了學校,開始專注于 Linux、編程和其他相關技能的學習,Dylan Araps開源的項目得到了廣泛的應用,并在Unix和Linux社區中得到廣泛關注。

開源最前線(ID:OpenSourceTop) 綜合整理

 

綜合自:https://leanpub.com/u/dylanaraps、https://leanpub.com/u/dylanaraps

責任編輯:武曉燕 來源: 開源最前線
相關推薦

2017-09-27 11:00:50

LinuxBash使用技巧

2025-03-13 06:22:59

2021-12-01 06:50:50

Docker底層原理

2014-04-22 09:42:12

Bash腳本教程

2021-10-19 07:27:08

HTTP代理網絡

2020-12-18 07:33:20

SpringSchedule組件

2018-04-24 14:52:48

LinuxBash腳本

2020-11-23 16:23:59

CSS設計技術

2025-03-18 09:20:00

Go語言Golang

2025-01-24 08:38:47

2021-09-06 07:59:56

死鎖工具多線編程

2019-12-23 16:42:44

JavaScript前端開發

2020-02-19 19:26:27

K8S開源平臺容器技術

2022-12-13 10:05:27

定時任務任務調度操作系統

2021-07-15 06:43:11

Bash調試腳本

2015-12-03 14:10:26

systemd容器Linux

2020-02-21 19:54:09

HTTPS 配置手把手教

2018-06-26 09:37:07

時序數據庫FacebookNoSQL

2024-08-13 11:13:18

2020-04-01 16:30:32

TCP互聯網Linux
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人免费视频网站在线观看 | 成人在线观看中文字幕 | 日本淫视频 | 国产精品久久久久久久久免费桃花 | 午夜天堂精品久久久久 | 欧美99久久精品乱码影视 | 米奇狠狠鲁 | 91精品国产91久久久久游泳池 | 国产成人99久久亚洲综合精品 | 美国十次成人欧美色导视频 | 成人久草| 男人av在线播放 | 人人干人人干人人干 | 爱爱小视频 | 国产高清精品一区二区三区 | 欧美一级特黄aaa大片在线观看 | 精品一区二区三区视频在线观看 | 日韩欧美手机在线 | 99热在线播放 | 色接久久 | 国产精品一区二区视频 | 久久久久久久夜 | 欧美在线a | 成人动漫一区二区 | 91精品久久久久久久久久 | 亚洲欧洲成人av每日更新 | 99视频免费在线观看 | 91社区在线观看 | 91国在线 | 成人免费视频网址 | 中文字幕91av | 国产一级影片 | 91精品国产综合久久久久久丝袜 | 中文字幕一区二区三区四区 | 亚洲国产高清在线观看 | 免费欧美 | 性色av网站| 大陆一级毛片免费视频观看 | 中文字幕乱码一区二区三区 | 成在线人视频免费视频 | 免费小视频在线观看 |