shell封裝

shift

命令用于對參數的移動(左移),通常用于在不知道傳入參數個數的情況下依次遍歷每個參數然后進行相應處理(常見于Linux中各種程序的啟動腳本)

shift(shift 1) 命令每執行一次,變量的個數($#)減一,移動2位可以 執行2次shift

Shell腳本$變量的含義

1、$#:表示執行腳本傳入參數的個數

2、$*:表示執行腳本傳入參數的列表(不包括$0)

3、$$:表示進程的id;Shell本身的PID(ProcessID,即腳本運行的當前 進程ID號)

4、$!:Shell最后運行的后臺Process的PID(后臺運行的最后一個進程的 進程ID號)

5、$@:表示執行腳本傳入參數的所有個數(不包括$0)

6、$0:表示執行的腳本名稱

7、$1:表示第一個參數

8、$2:表示第二個參數

9、$?:表示腳本執行的狀態,0表示正常,其他表示錯誤

(())雙小括號

雙小括號 (( )) 是 Bash Shell 中專門用來進行整數運算的命令,不能對小數(浮點數)或者字符串進行運算。

[[]]和[]

盡量使用[[ … ]]條件判斷結構, 而不是[ ], 能夠防止腳本中的許多邏輯錯誤. 比如,&&, ||, <, 和> 操作符能夠正常存在于[[]]條件判斷結構中, 但是如果出現在[ ]結構中的話, 會報錯。

[]

[ ] 兩個符號左右都要有空格分隔
內部操作符與操作變量之間要有空格:如 [ “a” = “b” ]
字符串比較中,> < 需要寫成\> \< 進行轉義:如 [ “a” < “b” ]
\字符串變量盡量使用"" 雙引號擴住,避免值未定義引用而出錯
[ ] 中可以使用 –a –o 進行邏輯運算
[ ] 是bash 內置命令

[[]]

[[ ]] 兩個符號左右都要有空格分隔
內部操作符與操作變量之間要有空格:如 [[ “a” = “b” ]]
字符串比較中,可以直接使用 > < 無需轉義。如 [[ “a” < “b” ]]
[[ ]] 中字符串如未使用"" ,可以通過==和=~進行模式和正則表達式匹配
[[] ] 內部可以使用 && || 進行邏輯運算
[[ ]] 是關鍵字
[[ ]] 其他用法都和[ ] 一樣
[[ ]] 和 [ ] 都可以和 ! 配合使用

case $1 in

;;

命令“;;”指出程序流應該跳到整個case語句的末尾,類似break。


case 需要滿足的值 in          #這里設置一個需要滿足的條件判斷條件1)                #判斷條件1,判斷該條件是否符合需要滿足的值子模塊                #如果判斷條件為 true,執行子模塊1;;                   #結束整個循環判斷條件2)               #如果判斷條件1沒滿足需要滿足的值,則走到判斷條件2,判斷該條件是否符合需要滿足的值子模塊2              #如果判斷條件為 true,執行子模塊2;;                   #結束整個循環判斷條件3)               #如果判斷條件2沒滿足需要滿足的值,則走到判斷條件3,判斷該條件是否符合需要滿足的值子模塊3                #如果判斷條件為 true,執行子模塊3;;                   #結束整個循環……*)                      #如果之前的判斷條件都沒滿足需要滿足的值,則走到判斷條件*子模塊4              #走到判斷條件*后,不管有沒有滿足都會執行下面的子模塊;;                   #結束整個循環esac                       #結束語法

封裝 sh run.sh arg1 arg2

function usage(){echo "Usage: ./run.sh -c /home/work/conf.conf -start /home/work/start.sh"echo "Usage: ./run.sh -c /home/work/conf.conf -stop /home/work/start.sh"
}function help(){}if [$# -eq 0]; thenusageexit 1
ifwhile [$# -gt 0];
do case $1 in -start)shiftSTART_PATH=$1shift;;-stop)shiftSTOP_PATH=$1shift;;-c)shiftCOUNT_TIME=$1if [[ $1 -lt 0]]; thenecho "-c must bigger than 0."exit 1fishift;;-h)usageexit 1;;esac
donefunction check_dir(){if [[! -d "log/" ]];thenmkdir logelseecho "log dir already exist."fi
}

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

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

相關文章

數據結構實現-線性表

順序存儲 #include<iostream> using namespace std; #define MaxSize 50 //靜態順序表 template<typename ElemType> struct sqList{ElemType data[MaxSize];//元素int length;//長度 }; //動態順序表 #ifdef DEBUG //關閉啟用 #define InitSize 100 template<…

嵌入式LINUX移植、配置ssh

編譯 https://quantum6.blog.csdn.net/article/details/136299665 編譯時指定prefix&#xff0c;產生的文件會自帶這個目錄。所以直接忽略。 ./configure# 不指定編譯路徑&#xff0c;手動復制。 復制 編譯后的整個目錄打包&#xff0c;復制到開發板。寫個腳本&#xff0c…

kamacoder13.鏤空三角形的C語言解法

13. 鏤空三角形 時間限制&#xff1a;1.000S 空間限制&#xff1a;32MB 題目描述 把一個字符三角形掏空&#xff0c;就能節省材料成本&#xff0c;減輕重量&#xff0c;但關鍵是為了追求另一種視覺效果。在設計的過程中&#xff0c;需要給出各種花紋的材料和大小尺寸的三角…

零拷貝技術深入分析

一、零拷貝 在前面的文章“深淺拷貝、COW及零拷貝”中對零拷貝進行過分析&#xff0c;但沒有舉例子&#xff0c;也沒有深入進行展開分析。本文將結合實際的例程對零拷貝進行更深入的分析和說明。 在傳統的IO操作中&#xff0c;以文件通過網絡傳輸為例 &#xff0c;一般會經歷以…

go語言是如何連接mysql數據庫的?

在 Go 語言中連接 MySQL 數據庫通常使用第三方庫。目前比較流行的 MySQL 客戶端庫包括 github.com/go-sql-driver/mysql、github.com/go-xorm/xorm、github.com/jmoiron/sqlx 等。下面是一個使用 github.com/go-sql-driver/mysql 庫連接 MySQL 數據庫的簡單示例&#xff1a; 首…

GOPATH set to GOROOT (/usr/local/go) has no effect

這個警告信息指出 GOPATH 環境變量被設置為與 GOROOT 相同的值。GOPATH 環境變量用于指定 Go 工作區的位置&#xff0c;而 GOROOT 指定 Go 安裝的位置。將 GOPATH 設置為 GOROOT 表示 Go 工作區和 Go 安裝位置位于同一目錄&#xff0c;這是不推薦的。為了解決此問題&#xff0c…

Zookeeper集群docker部署

集群角色 zookeeper 集群中的機器分為一下三種角色 leader:為客戶端提供讀寫服務(事務性操作)&#xff0c;并維護集群狀態&#xff0c;它是由集群選舉所產生的&#xff1b; follower:為客戶端提供讀(非事務性操作)&#xff0c;轉發給leader寫(事務性操作)&#xff0c;參與選舉操…

K8s控制器

控制器: Deployment: Deployment概述: replicaset:自動創建pod的控制器 Delpoyment控制器: pod的名字需要唯一,在這不寫名字,利用標簽進行創建 replicas:表示你想要克隆的數量,selector:通過標簽.識別哪個pod是我創建出來的.這里的標簽和后面元數據里的標簽要一致. Cluster…

NCDA設計大賽獲獎作品剖析:UI設計如何脫穎而出?

第十二屆大賽簡介 - 未來設計師全國高校數字藝術設計大賽&#xff08;NCDA&#xff09;開始啦&#xff01;視覺傳達設計命題之一: ui 設計&#xff0c;你想知道的都在這里。為了讓大家更好的參加這次比賽&#xff0c;本文特別為大家整理了以往NCDA大賽 UI 設計的優秀獲獎作品&a…

【探索AI】十四深度學習之第2周:深度神經網絡(三)-過擬合與正則化技術

過擬合與正則化技術 過擬合的概念 在機器學習和深度學習的領域中&#xff0c;過擬合&#xff08;Overfitting&#xff09;是一個常見且重要的問題。首先&#xff0c;我們來理解一下什么是過擬合。 過擬合是指模型在訓練數據上表現得過于優秀&#xff0c;以至于在訓練集上的錯…

2024年騰訊云優惠券_代金券_云服務器折扣券免費領取鏈接

騰訊云優惠代金券領取入口共三個渠道&#xff0c;騰訊云新用戶和老用戶均可領取8888元代金券&#xff0c;可用于云服務器等產品購買、續費和升級使用&#xff0c;阿騰云atengyun.com整理騰訊云優惠券&#xff08;代金券&#xff09;領取入口、代金券查詢、優惠券兌換碼使用方法…

【SpringBean】bean的作用域和bean的生命周期

目錄 前言 一 bean的作用域 1. singleton——唯一 bean 實例 2. prototype——每次請求都會創建一個新的 bean 實例 3. request——每一次HTTP請求都會產生一個新的bean&#xff0c;該bean僅在當前HTTP request內有效 4. session——每一次HTTP請求都會產生一個新的 bean&…

程序員的金三銀四求職寶典!

目錄 ?編輯 程序員的金三銀四求職寶典 一、為什么金三銀四是程序員求職的黃金時期&#xff1f; 二、如何準備金三銀四求職&#xff1f; 1. 完善簡歷 2. 增強技術能力 3. 提前考慮目標公司 4. 提前準備面試 三、程序員求職的常見面試題 1. 數據結構和算法 2. 數據庫 …

一次電腦感染Synaptics Pointing Device Driver病毒的經歷,分享下經驗

沒想到作為使用電腦多年的老司機也會電腦中病毒&#xff0c;周末玩電腦的時候突然電腦很卡&#xff0c;然后自動重啟&#xff0c;奇怪&#xff0c;之前沒出現這個情況。 重啟后電腦開機等了幾十秒&#xff0c;打開任務管理器查看開機進程&#xff0c;果然發現有個Synaptics Po…

LeetCode 刷題 [C++] 第121題.買賣股票的最佳時機

題目描述 給定一個數組 prices &#xff0c;它的第 i 個元素 prices[i] 表示一支給定股票第 i 天的價格。 你只能選擇 某一天 買入這只股票&#xff0c;并選擇在 未來的某一個不同的日子 賣出該股票。設計一個算法來計算你所能獲取的最大利潤。 返回你可以從這筆交易中獲取的…

php兒童服裝銷售管理系統計算機畢業設計項目包運行調試

php mysql兒童服裝銷售網 功能&#xff1a;前臺后臺 前臺&#xff1a; 1.服裝資訊 文章標題列表 詳情 2.服裝選購中心 分頁查看圖文列表 詳情 3.用戶注冊 登陸 退出 4.服裝加入收藏 5.加入購物車 6.對服裝進行評論 會員中心&#xff1a; 1.我的賬戶 查看 修改 2.我的收藏 查看 …

STM32 中斷流程介紹

STM32可以產生中斷的事件多種多樣&#xff0c;比如&#xff1a;定時器時間結束、串口接收到數據、某個GPIO檢測到電平變化等等等等。 1、STM32 gpio 中斷處理流程介紹 1、從引腳進入的高低電平首先由輸入驅動器處理&#xff0c;如下圖 2、經過輸入驅動器處理后的信號會進…

大數據數據平臺的數倉體系分類有哪些?

大數據平臺的數倉體系最初由數據庫發展而來&#xff0c;主要分為三類架構&#xff0c;分別是Shared-Nothing、Shared-Data、Shared-Everything。 Shared-Nothing&#xff08;也稱 MPP&#xff09;架構在 很長一段時間成為主流。 隨云原生能力增強&#xff0c;Snowflake 為代表…

c++基礎知識補充4

單獨使用詞匯 using std::cout; 隱式類型轉換型初始化&#xff1a;如A a1,,此時可以形象地理解為int i1;double ji;&#xff0c;此時1可以認為創建了一個值為1的臨時對象&#xff0c;然后對目標對象進行賦值&#xff0c;當對象為多參數時&#xff0c;使用&#xff08;1&#xf…

c1-周考2

c1-第二周 9月-技能1.一個島上有兩種神奇動物&#xff0c;其中神奇鳥類2個頭3只腳&#xff0c;神奇獸類3個頭8只腳。游客在濃霧中看到一群動物&#xff0c;共看到35個頭和110只腳&#xff0c;求可能的鳥類和獸類的只數2.構建一個長度為5的數組&#xff0c;并且實現下列要求3.構…