小白也能操作Linux,十分鐘教你簡單的shell指令碼編寫邊學邊用

博為峰網校發表於2021-12-21

在剛入行軟體測試的時候,shell指令碼也就是了解這個概念,那會兒也基本用不到這個技能,工作做得最多的就是點點點。 加我VX:atstudy-js 回覆“測試”,進入 自動化測試學習交流群~~

現在由於所處行業的關係吧,經常要在linux伺服器做些常見操作。遇到不會的就百度,也慢慢的學了一些之前沒有接觸過的linux 命令,也開始看shell指令碼的書籍,看過沒有實戰沒有練習,也就存在一個概念。

Linux命令用多了,自然而然想到了shell指令碼,想要用它來解決一些工作中的重複操作,於是開始邊學邊用,效果還不錯。

工作場景:

我們測試的時候會把軟體包拷貝到管理平臺的軟體倉庫中,如果倉庫中有,就要覆蓋掉。

手動操作的流程是這樣的:

wget【url】:下載軟體包,壓縮包格式的;

tar -zxvf xxx.tar.gz:解壓軟體包到當前檔案;

進入到解壓好的檔案中,裡面有2個資料夾,然後依次拷貝,這裡使用scp命令,-r是遞迴目錄的意思。scp -r xxx/ /opt/xxx

這裡為啥沒用cp呢?因為我發現cp覆蓋時,老是提示我,需要我手動確認,太繁瑣了。所以這裡使用了scp命令,這個命令經常用於兩個伺服器之間遠端拷貝。

這個軟體包更換流程,做的次數多了也熟練和熟悉了,突然有一天,要告訴一個不懂linux命令的人,讓他去完成軟體包更換工作。這就有點難上加難了。想到了自己也經常做這個操作,也不想對別人進行小白教學,那就編寫個簡單的shell指令碼吧。

設計思路是這個的:

#!/bin/bash

#獲取當前時間

cur_date=`date +%Y%m%d-%H-%M`

tmp_dir=service_$cur_date

#根據時間,建立資料夾

mkdir $tmp_dir

cd $tmp_dir

echo "進入目錄:"$tmp_dir

#下載

echo "下載檔案到"$tmp_dir

wget $1

# 解壓

echo "正在解壓檔案"

sleep 3

tar -zxvf *.tar.gz

echo "解壓完成,開始刪除壓縮包"

rm -rf *.tar.gz

for i in `ls`

do

echo "軟體包的資料夾名:"$i

tmp_dir_package=$i

done

cd $tmp_dir_package

echo "進入包目錄:"$tmp_dir_package

echo "開始拷貝軟體包到ole軟體倉庫/opt/"

scp -r package/ /opt/

scp -r repository/ /opt/

echo "軟體包拷貝完成,別忘了去sole軟體倉庫重新整理啊!!!"

sleep 3

1將下載地址作為位置引數傳入指令碼

2根據當前時間,具體到分鐘吧,在指令碼所在檔案建立一個資料夾,名稱就用上那個時間,避免資料夾重名啥的

3進入這個資料夾,下載壓縮包

4解壓壓縮包,然後刪除壓縮包,為下一步做準備

5解壓後就一個資料夾,我們獲取一下這個資料夾名字,然後進去

6拷貝檔案,完成。

具體實現如下:

好了一個簡單的指令碼寫好了,指令碼知識點:

1、反引號的使用,反引號的作用就是將反引號內的Linux命令先執行,然後將執行結果賦予變數

2、位置引數的使用

3、建立資料夾、刪除、解壓、echo、sleep

4、scp拷貝,遠端拷貝

5、for迴圈

6、wget 下載

最後:

可以我的 個人V:atstudy-js,可以 免費領取一份10G軟體測試工程師面試寶典文件資料。以及相對應的視訊學習教程免費分享!,其中包括了有基礎知識、Linux必備、Mysql資料庫、抓包工具、介面測試工具、測試進階-Python程式設計、Web自動化測試、APP自動化測試、介面自動化測試、測試高階持續整合、測試架構開發測試框架、效能測試等。

這些測試資料,對於做【軟體測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2848716/,如需轉載,請註明出處,否則將追究法律責任。

相關文章