日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

shell脚本如何优雅的打印帮助信息

發布時間:2025/3/15 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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脚本如何优雅的打印帮助信息的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。