例項快速上手shell指令碼

2021-09-12 05:37:14 字數 3483 閱讀 7982

初始化路徑

這個最好都在開頭寫上,意思是之後的任何語句執行只要有乙個返回的不是true就退出。這樣的好處就是保證自己的**在執行完完全是自己想要的,而不是執行了幾天發現竟然是有問題的**。真的是這樣就慘了。所以,開頭一定寫上這個。如果要增加可讀性,也可以用set -o errexit  字面意思就是出現error就exit。跟set -e是一樣一樣的。

這裡大概分為四小部分:

分別為:bash_source,cd,dirname,pwd

bash_source:我們先看裡面的,這個是當前指令碼的檔案的路徑。但是前提你得先將次指令碼檔案加上可執行許可權,即 chmod +x [當前檔名]。然後,就能用這個命令了。bash_source[0]存放的路徑資料。

dirname:取出後面命令的路徑部分

pwd:這個是獲得當前路徑。

&&:這個的意思就是前面的執行完了才執行後面的。

這句話總的意思就是,獲取該指令碼的上一級的路徑。

你看看,一句話學習了這麼多命令,是不是很開心o.o

這個主要就是$是知道什麼意思。我先說說$0,$1,$2等,這裡的$0表示這個這個指令碼本身,$1,$2分別表示第乙個引數,第二個引數。那麼我們來看這個命令。這個意思就是說:先判斷第乙個位置是不是有傳入的引數,有的話output_dir就是第乙個引數,如果沒有的話那就後面的***,這裡就是output_dir="wmt16_de_en"。

這兩句應該不用解釋了。設定output_dir的值和乙個echo的輸出。

第一句話

這裡說說mkdir吧。

mkdir:建立乙個目錄。mkdir myfile    就生成乙個myfile目錄在當前目錄裡。這裡的-p選項,是一次可以建立多個路徑的意思。舉個例子:

mkdir ./dir1/dir2/dir3   如果此時沒有dir1那麼之後的都建立不了,如果用

mkdir -p ./dir1/dir2/dir3 就可以啦。沒有的都會自己建立。

下一句

如果想詳細了解curl命令,可以看

shell中的curl網路請求

因為我們經常用的就是curl -o [儲存路徑] [網路鏈結]

所以,基本記住這個命令就差不多啦。

解壓

這裡的主要命令就是解壓tar了。

先來說說tar的引數吧。

-c :建立乙個壓縮檔案的引數指令(create 的意思);

-x :解開乙個壓縮檔案的引數指令!

-t :檢視 tarfile 裡面的檔案!

特別注意,在引數的下達中, c/x/t 僅能存在乙個!不可同時存在!

因為不可能同時壓縮與解壓縮。

-z :是否同時具有 gzip 的屬性?亦即是否需要用 gzip 壓縮?

-j :是否同時具有 bzip2 的屬性?亦即是否需要用 bzip2 壓縮?

-v :壓縮的過程中顯示檔案!這個常用,但不建議用在背景執行過程!

-f :使用檔名,請留意,在 f 之後要立即接檔名喔!不要再加引數!

例如使用『 tar -zcvfp tfile sfile』就是錯誤的寫法,要寫成

『 tar -zcvpf tfile sfile』才對。

-p :使用原檔案的原來屬性(屬性不會依據使用者而變)

-p :可以使用絕對路徑來壓縮!

-n :比後面接的日期(yyyy/mm/dd)還要新的才會被打包進新建的檔案中!

--exclude file:在壓縮的過程中,不要將 file 打包!

該引數來自於

【shell】tar命令詳解

因為我們常用的命令就是

解壓 tar -xvzf [解壓的檔案]  -c [輸出檔案的名字]

打包 tar -zcvf [打包的檔案]  -c [輸出檔案的名字]

-c [檔案名字]可以不寫,用預設檔名。

常用shell語句

這裡主要就是if了。

一、條件測試的表示式:

[ expression ]  括號兩端必須要有空格

[[ expression ]] 括號兩端必須要有空格

test expression

組合測試條件:

-a: and

-o: or

!:  非

二、整數比較:

-eq 測試兩個整數是否相等

-ne 測試兩個整數是否不等

-gt 測試乙個數是否大於另乙個數

-lt 測試乙個數是否小於另乙個數

-ge 大於或等於

-le 小於或等於

三、命令間的邏輯關係

邏輯與:&&

第乙個條件為假 第二個條件不用在判斷,最總結果已經有

第乙個條件為真,第二個條件必須得判斷

邏輯或:||

四、字串比較

== 等於  兩邊要有空格

!= 不等

>  大於

五、檔案測試

-z string 測試指定字元是否為空,空著真,非空為假

-n string 測試指定字串是否為不空,空為假 非空為真

-e file 測試檔案是否存在

-f file 測試檔案是否為普通檔案

-d file 測試指定路徑是否為目錄

-r file 測試檔案對當前使用者是否可讀

-w file 測試檔案對當前使用者是否可寫

-x file 測試檔案對當前使用者是都可執行

-z  是否為空  為空則為真

-a  是否不空

這裡,如果then不寫在if後面,if後面就不用分好了;還有,末尾記得fi結尾呀!

好啦。基本的講完了,給你這篇shell指令碼吧。自己嘗試看看,理解理解!進步在一點一滴!!加油

linux基本命令了哈。

ofbiz 快速上手例項

按照原文的操作順序,寫完之後執行,會出現錯誤 本人經過不懈的努力之後,找到了一下需要修改的地方 1.controller.xml 其中這一句 main type screen page component widget screens.xml main page後面的值應該指向,自己定義的learn...

shell指令碼例項

1.批量建立10個系統賬號test01 test10,並隨機設定8位數密碼 bin bash for i in seq w 10 do useradd test i echo random madsum cut c 8 tee a passwd.txt stdin test i done 2.在目錄...

Shell 指令碼例項

指令碼內容如下 bin bash action 定義函式,進行操作指南 action 1 database mysql uroot p 1 en e show databases grep e schema v mkdir p mnt sqldump e database name sql case...