不知道你是否在為突然想實現某個功能的小腳本而苦苦尋找答案,這里有一份“圣經”用來查看各種僅使用內置bash命令實現各種常用的功能和鮮為人知的用法。
作者:守望,Linux應用開發者
前言
不知道你是否在為突然想實現某個功能的小腳本而苦苦尋找答案,這里有一份“圣經”用來查看各種僅使用內置bash命令實現各種常用的功能和鮮為人知的用法。
為什么要寫腳本?
無論是作為Linux應用開發還是運維,編寫shell腳本都是一個最基本的技能,而使用shell能夠簡潔快速地解決很多問題,提高效率。什么你還不會?那么建議你花點時間學一下,畢竟花不了你太多時間就可以讓它給你干活。
為什么要使用內置bash來實現?
使用內置的bash命令可以避免一些依賴,不至于你的腳本遷移到另外一個系統還需要裝一些依賴,另外一方面,使用這些內置命令常常也會更加高效。
這份”圣經“是怎樣的?
實際上它是github上地一個星標項目,地址如下:
https://github.com/dylanaraps/pure-bash-bible
目前星標近20k,它列出了一些常用的功能,有哪些呢,我們可以看看。
字符串
去掉字符串首尾的空格
去掉字符串中的空格并用空格分割
在字符串中使用正則表達式
分割字符串
字符串大小寫轉換
字符串反轉
檢查字符串中是否包含某個子串
檢查字符串是否以某個子串結尾
……
數組
反轉數組
去除數組中重復元素
隨機排列數組元素
……
循環
以數值作為循環條件
以數值變量作為循環條件
以數組作為循環條件
遍歷文件內容
遍歷文件和目錄
……
文件處理
將文件內容讀取到字符串中
將文件內容以行為單位讀取到數組中
讀取文件的前n行
讀取文件的最后n行
創建空文件
……
文件路徑
獲取全路徑中的目錄名
獲取全路徑中的文件名
注意,這里僅僅是目錄的一小部分,原項目中還有很多內容,包括一些內置變量的獲取,系統信息的獲取,一些常用語法,常見表達式,基本運算等等。
內容是什么樣子的呢?
舉個例子,如何去掉字符串首尾的元素,它給了一個shell函數:
trim_string() {
# Usage: trim_string " example string "
: "${1#"${1%%[![:space:]]*}"}"
: "${_%"${_##*[![:space:]]}"}"
printf '%s
' "$_"
}
那么在shell腳本中就可以這樣調用:
trim_string " Hello, World "
#會打印這個結果:Hello, World
而又例如在介紹循環的時候,告訴你一些常見的循環方式:
# Loop from 0-100 (no variable support).
for i in {0..100}; do
printf '%s
' "$i"
done
或者
VAR=50
for ((i=0;i<=VAR;i++)); do
printf '%s
' "$i"
done
又或者:
for element in "${arr[@]}"; do
printf '%s
' "$element"
done
總之作為基礎學習的手冊也是非常不錯了,一些常用的語法在這里都能看到。
總結
實際上里面很多相關功能也有一些bash命令可以直接實現,但是大部分內容作為一個速查的渠道還是不錯的,有興趣的可以去查看:
https://github.com/dylanaraps/pure-bash-bible
來源:本文內容搜集或轉自各大網絡平臺,并已注明來源、出處,如果轉載侵犯您的版權或非授權發布,請聯系小編,我們會及時審核處理。
聲明:江蘇教育黃頁對文中觀點保持中立,對所包含內容的準確性、可靠性或者完整性不提供任何明示或暗示的保證,不對文章觀點負責,僅作分享之用,文章版權及插圖屬于原作者。
Copyright©2013-2025 ?JSedu114 All Rights Reserved. 江蘇教育信息綜合發布查詢平臺保留所有權利
蘇公網安備32010402000125
蘇ICP備14051488號-3技術支持:南京博盛藍睿網絡科技有限公司
南京思必達教育科技有限公司版權所有 百度統計