shell脚本如何优雅的打印帮助信息
生活随笔
收集整理的這篇文章主要介紹了
shell脚本如何优雅的打印帮助信息
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一個好的幫助信息對于快速、高效的使用shell腳本是非常有好處的。我們一般通過echo來逐行打印幫助信息,這種方式一個明顯的缺點就是需要手動去進行排版,而排版的過程有時十分的繁瑣。有沒有想過,如果可以像寫一般的注釋一樣來完成幫助信息的編寫,那該多好啊!本文通過sed這個工具來實現,像寫注釋一樣寫shell的幫助信息。
shell中一般#開頭的行為注釋信息,所以利用這個特性,我們可以把幫助信息設計成如下的樣式:
#!/usr/bin/env bash ### =================================================================== ### my-script — does one thing well ### ### Usage: ### my-script <input> <output> ### ### Options: ### <input> Input file to read. ### <output> Output file to write. Use '-' for stdout. ### -h Show this message. ### ===================================================================然后,編寫一個help函數完成幫助信息打印。
help() {sed -rn 's/^### ?//;T;p;' "$0" }這里用到了sed這個工具,sed是類Unix系統中十分強大的流編輯工具,關于sed的更多的使用方式,請man sed。關于help中的sed使用到的參數解釋如下:
- “$0”:表示腳本的文件名,例如,help.sh
- -r:表示使用擴展的正則表達式
- -n:表示打印sed匹配到的信息
- s:使用sed的替換模式
- ^### ?:表示匹配以###和若干個空格開頭的字符串
- //:用空字符替換之前匹配到的字符串
- T:如果s///沒有替換成功,跳轉到sed-script的末尾
- p:打印替換結果
編寫help的調用邏輯,即直接調用腳本,或者使用-h選項。
if [[ $# == 0 ]] || [[ "$1" == "-h" ]]; thenhelpexit 1 fi使用效果:
$ ./help.sh my-script — does one thing wellUsage:my-script <input> <output>Options:<input> Input file to read.<output> Output file to write. Use '-' for stdout.-h Show this message.————————————————
版權聲明:本文為CSDN博主「奔跑的碼仔」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/lhl_blog/article/details/107409694
總結
以上是生活随笔為你收集整理的shell脚本如何优雅的打印帮助信息的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 暴力枚举也不能没有底线(洛谷P1003题
- 下一篇: 洛谷P4445题解(Java语言描述)