淺談Linux bash腳本----getopts獲取腳本POSIX標準傳參

getopts是一個在 Shell 腳本中用于解析命令行選項的內置命令。

它用于處理腳本的參數,使得腳本可以接受不同的選項和參數,并根據用戶提供的輸入采取相應的操作。

getopts 命令基于 POSIX 標準,并且通常與 while 循環結合使用。它的語法如下:

while getopts "<options>" opt; docase $opt in<option1>)# 處理 option1 的操作;;<option2>)# 處理 option2 的操作;;\?)# 處理無效選項的操作或錯誤提示echo "Invalid option: -$OPTARG";;esac
done

其中,<options>為該腳本程序接受的參數列表,每個參數用一個字母表示;getopts會隨著while循環挨個遍歷參數列表,opt為匹配到的參數字符,OPTARG為當前匹配到的參數值,如果有的話。

比非所有參數都有值,可以在配置<options>參數列表時用冒號:標記改參數是否有值,例如:

#!/bin/bash
# file_name: my_script.shwhile getopts "a:b:cde:fgh" opt
docase $opt ina)echo "Option -a is set with value $OPTARG";;b)echo "Option -b is set with value $OPTARG";;c)echo "Option -c is set";;d)echo "Option -d is set";;e)echo "Option -e is set with value $OPTARG";;f)echo "Option -f is set";;g)echo "Option -g is set";;h)echo "Option -h is set";;\?)echo "Invalid option: -$OPTARG";;esac
done
./my_script.sh -a apple -b36 -c -d -e ays -ghf
#>Option -a is set with value apple
#>Option -b is set with value 36
#>Option -c is set
#>Option -d is set
#>Option -e is set with value ays
#>Option -g is set
#>Option -h is set
#>Option -f is set

總結一下,getopts從第一個腳本命令行參數開始,假如是以-開頭,則識別為是傳參,取-后面的一個字母做為傳參名,然后到getopts配置的<options>參數列表中檢查該傳參是否有值。

如果該傳參有配置值,取該命令行參數剩余部分為參數值,如果剩余部分為空字符串,則取下一個命令行參數做為參數值(不管下一個命令行參數是否以-開頭);

如果該傳參沒有配置值,且當前命令行參數還有其他字符,則取下一個字符做為傳參,繼續判斷;

如果該傳參沒有配置值,且當前命令行參數沒有其他字符,則取下一個命令行參數,繼續判斷;

如果遇到一個命令行參數不是以-開頭,或所有命令行參數遍歷結束,getopts返回False,while循環結束。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/163267.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/163267.shtml
英文地址,請注明出處:http://en.pswp.cn/news/163267.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

labview 安捷倫 34970A 采集溫度等

本文詳細描述了怎么用安捷倫34970A采集溫度&#xff0c;并列出了labview的下載鏈接&#xff0c;具有一定的參考價值。 1.必要條件&#xff1a; RS-232電纜一根 IO Libraries Suite 軟件 BenchLink Data Logger 軟件 軟件可以在http://www.keysight.com.cn下載 檢查RS-232…

SQLite3 數據庫學習(五):Qt 數據庫高級操作

參考引用 SQLite 權威指南&#xff08;第二版&#xff09;SQLite3 入門 1. Qt 數據庫密碼加密 MD5 加密在線工具 1.1 加密流程 加密后的密碼都是不可逆的 1.2 代碼實現 loginsqlite.h #ifndef LOGINSQLITE_H #define LOGINSQLITE_H#include <QWidget> #include <Q…

通過Whisper模型將YouTube播放列表中的視頻轉換成高質量文字稿的項目

項目簡介 一個通過Whisper模型將YouTube播放列表中的視頻轉換成高質量文字稿的項目。 這個基于 Python 的工具旨在將 YouTube 視頻和播放列表轉錄為文本。它集成了多種技術&#xff0c;例如用于轉錄的 Fast-Whisper、用于自然語言處理的 SpaCy 以及用于 GPU 加速的 CUDA&…

pytest測試框架介紹(1)

又來每天進步一點點啦~~~ 一、Pytest介紹&#xff1a; pytest 是一個非常成熟的全功能的Python測試框架&#xff1b; pytest 簡單、靈活、易上手&#xff1b; 支持參數化 能夠支持簡單的單元測試和復雜的功能測試&#xff0c;可以做接口自動化測試&#xff08;pytestrequests&…

根據商品鏈接獲取拼多多商品詳情數據接口|拼多多商品詳情價格數據接口|拼多多API接口

拼多多&#xff0c;作為中國最大的社交電商之一&#xff0c;為賣家提供了豐富的商品詳情接口。這些接口可以幫助賣家快速獲取商品信息&#xff0c;提高銷售效率。本文將詳細介紹如何使用拼多多商品詳情接口&#xff0c;以及它的優勢和注意事項。 一、拼多多商品詳情接口概述 …

Picasso網絡原生PICA Token通過XCM集成進入Moonriver生態

波卡上的首選多鏈開發平臺Moonbeam宣布Moonriver和Picasso&#xff08;分別為Moonbeam和Composable Finance的Kusama對應平行鏈&#xff09;已達成XCM集成。該集成將Picasso的PICA Token引入Moonriver生態系統使用&#xff0c;并允許用戶在Picasso網絡上使用MOVR。兩條平行鏈都…

大宗商品貿易集團數據治理實踐,夯實數字基座 | 數字化標桿

某大型央企是首批全國供應鏈創新與應用示范企業&#xff0c;在“十四五”規劃期內以聚焦供應鏈管理核心主業作為主要戰略發展方向。供應鏈運營管理以大宗商品貿易為主&#xff0c;其交易往往具有交易量巨大、交易環節復雜、風險交易難識別、風險客商難管控等痛點。 隨著集團數…

豬肉罐頭加工污水處理設備生產廠家價格

豬肉罐頭加工污水處理設備生產廠家價格 設備原理 廢水由收集管網收集&#xff0c;自流進入格柵渠&#xff0c;通過格柵除污機去除大塊碎肉、漂浮物&#xff0c;入初沉池把有利于沉淀的非溶解物質加以沉淀&#xff0c;然后自流進入調節池&#xff0c;由調節池調節水量和均化水質…

五分鐘搭建開源ERP:Odoo,并實現公網遠程訪問

文章目錄 前言1. 下載安裝Odoo&#xff1a;2. 實現公網訪問Odoo本地系統&#xff1a;3. 固定域名訪問Odoo本地系統 前言 Odoo是全球流行的開源企業管理套件&#xff0c;是一個一站式全功能ERP及電商平臺。 開源性質&#xff1a;Odoo是一個開源的ERP軟件&#xff0c;這意味著企…

小豬優版的前世今生:從籍籍無名到行業矚目,再到驟變的風暴中心

1. 前世&#xff1a;籍籍無名到行業新星的崛起 小豬優版在初創時期&#xff0c;并不被大眾所知。然而&#xff0c;它憑借對短視頻行業的深度洞察&#xff0c;以及獨特的商業模式&#xff0c;開始在這個領域嶄露頭角。它提供了一個平臺&#xff0c;不僅助力內容創作者更好地展現…

使用whisper實現語音轉文本

項目地址&#xff1a;GitHub - openai/whisper: Robust Speech Recognition via Large-Scale Weak Supervision 1、需要py3.8環境 conda activate p38 2、安裝 pip install -U openai-whisper 3、下載項目 pip install githttps://github.com/openai/whisper.git 4、安裝…

6:kotlin 空值安全(Null safety)

在Kotlin中&#xff0c;是可以有空值的。為了防止程序中出現空值問題&#xff0c;Kotlin實施了空值安全。空值安全在編譯時而不是運行時檢測到可能的空值問題。 空值安全是一組功能的組合&#xff0c;允許您&#xff1a; 明確聲明程序中允許空值的地方。檢查空值。對可能包含…

如何避免Steam搬磚項目中賬號被盜

購買steam余額有風險嗎&#xff1f;及N種被紅鎖的情況 相信最近很多人都已經聽說過steam游戲搬磚這個項目&#xff0c;也叫CSGO游戲搬磚項目&#xff0c;還有人叫它&#xff1a;國外steam游戲匯率差項目&#xff0c;無論怎么稱呼&#xff0c;都是同一個項目。 那么什么是stea…

2022-4-10 臺大機器人學 軌跡

臺大機器人學 運動學 軌跡規劃 多段 linear function with parabolic blends 直線轉二次曲線平滑過多個中間via points

Fuzzy c-means

Fuzzy c-means ? 模糊C-均值聚類算法&#xff1a;是一種模糊聚類算法&#xff0c;是K均值算法聚類的推廣形式&#xff0c;隸屬度取值為[0,1]區間內的任意一個數&#xff0c;提出的基本依據是“類內加權誤差平方和最小化”準則。 ? 這兩個方法都是迭代求取最終的聚類劃分&am…

潑天的富貴來啦,快帶著你的PMP證書一起迎接

考過PMP認證的威寶們&#xff0c;這波潑天的富貴大家一定要接住呀&#xff01; 很多威寶們在學習PMP之前都在擔心&#xff0c;這個證書含金量高嗎&#xff1f;轉崗跳槽用得上嗎&#xff1f;有必要考嗎&#xff1f;今天&#xff0c;喜番大聲地告訴大家&#xff1a;含金量高&…

Class文件轉Java文件

目錄 1、下載一個反編譯工具2、在文件夾下打開命令窗口3、在此目錄下隨意建一個文件夾4、在打開的命令窗口輸入命令5、返回解壓目錄下 1、下載一個反編譯工具 下載鏈接&#xff1a;https://varaneckas.com/jad/ 下載的是第一個 下載后放至任意目錄下解壓即可 2、在文件夾下打…

夜天之書 #88 Elastic License 2.0 與開源協議的發展

譯序 我在此前的多篇文章中討論了商業開源的話題&#xff1a; 《企業開源的軟件協議模型實踐》《企業實踐開源的動機》《商業源碼協議為何得到 HashiCorp 等企業的垂青&#xff1f;》《企業如何實踐開源協同》《中國不缺好的開源開發者》“商業探索與可持續”一節《開源不是商業…

JetLinks設備接入的認識與理解【woodwhales.cn】

為了更好的閱讀體驗&#xff0c;建議移步至筆者的博客閱讀&#xff1a;JetLinks設備接入的認識與理解 1、認識 JetLinks 1.1、官網文檔 官網&#xff1a;https://www.jetlinks.cn/ JetLinks 有兩個產品&#xff1a;JetLinks-lot和JetLinks-view 官方文檔&#xff1a; JetLi…

【自然語言處理】正向最大匹配算法(FMM),反向最大匹配算法(BMM)和雙向最大匹配算法(BM)原理及實現

目錄 一&#xff0c;正向最大匹配算法&#xff08;FMM&#xff09; 二&#xff0c;反向最大匹配算法&#xff08;RMM) 一&#xff0c;正向最大匹配算法&#xff08;FMM&#xff09; 正向最大匹配分詞&#xff08;Forward maximum matching segmentation&#xff09;通常簡稱為…