我的第一次shell

晨曦001發表於2020-12-11

我的第一次shell

最近我們的專案需要進行優化,整體架構進行改造。
然後我們紅超哥就看我骨骼驚奇,說小夥子你想不想當做掌門人呀。(我說不想哈哈)
想不想也沒用了,紅超哥說我們現在的架構有所改變,需要你寫一套自動部署指令碼。(弱小的我沒有說出一個不字)

Shell可以幹啥

  • 如果小夥伴們使用過Linux作業系統那肯定使用過shell命令,cdls 再或者你們一定看過 rm -rf xxxx 哈哈,這些其實都是我們的shell命令,我們將程式部署到系統上面去的時候每次都需要輸入一推命令,如果一天部署一個程式你還受得了,但是如果紅超哥一定要我部署50個程式。那當然我也不會說一個不字 ,但是我們經常會出現多打一個字母,少打一個字母的情況,當前一個兩個專案的工作量我還能接受,但是紅超哥說的50個程式部署,那我也能完成。但是為了早點下班,多摸魚。所以我們還是要弄自動化。

Shell是個啥

  • Shell 是一個用 C 語言編寫的程式,它是使用者使用 Linux 的橋樑。Shell 既是一種命令語言,又是一種程式設計語言。Shell 是指一種應用程式,這個應用程式提供了一個介面,使用者通過這個介面訪問作業系統核心的服務。Ken Thompson 的 sh 是第一種 Unix Shell,Windows Explorer 是一個典型的圖形介面 Shell。
  • 不管他三七二二的先把菜鳥教程文件看一遍,你就已經是菜鳥了。然後就是編寫指令碼測試指令碼。一步一步進化成為大鵬叉燒

開搞之前

  • 所以我先將菜鳥教程文件都看了一遍,然後在園子看了其他大佬寫的shell博文,先吸收一點經驗,減少一些沒必要的彎路(而且最近紅超哥也挺忙的,哈哈,不過雖然問紅超哥雖好,但是程式人生中該踩的坑,還是要踩) 推薦博文

搞搞

  • 因為寫自己寫的程式碼肯定需要給別人看的,所以我們需要先定義這個指令碼是幹嘛的。(#!/bin/bash告訴系統使用shell那種核心執行指令碼)

  • 日誌資訊一定要有。這個很重要,因為我們不像紅超哥一樣寫程式碼一次過,所以我們還是需要使用日誌記錄我們的資訊。

  • 也可以更好的返回提示給執行指令碼的人看到指令碼執行情況。

  • 在我編寫的過程中會發現很多方法都是一樣的,作為碼農練習生的我肯定會想到封裝啦。

  • 然後我們的可以使用 . 或者source 進行包含外包shell指令碼。

  • 如果我們在之心執行教程出現換行符報錯的問題我們可以通過 sed -i 's/\r$//' xxl.sh 進行轉換。

  • 或者將指令碼字元格式進行修改LF格式就可以了。

  • 我們在執行指令碼的時候如果出現許可權不夠的是時候,我們可以使用 sudo sh xxx.sh 讓指令碼提升一下許可權。

  • 當我們的功能比較多的時候,儘量將功能封裝成為一個一個的方法。

總結

  • 這也是我第一次寫shell指令碼,總結的一些經驗,後續還會持續補充一些自己的經驗。

相關文章