shell指令碼使用集錦

2021-10-04 02:27:49 字數 1314 閱讀 2517

本章會記錄開發過程中用到的shell指令碼命令,會一直更新下去

$$shell本身的pid(processid)

$!shell最後執行的後台process的pid

$?最後執行的命令的結束**(返回值)

$-使用set命令設定的flag一覽

∗ 所有

引數列表

。如

"* 所有引數列表。如"

∗所有引數列

表。如"

*「用「」」括起來的情況、以"$1 $2 … $n"的形式輸出所有引數。

@ 所有

引數列表

。如

"@ 所有引數列表。如"

@所有引數列

表。如"

@「用「」」括起來的情況、以"$1" 「2"…

"2" … "

2"…"

n」 的形式輸出所有引數。

$#新增到shell的引數個數

$0shell本身的檔名

1 ~1~

1~n新增到shell的各引數值。$1是第1引數、$2是第2引數…。

-eq //equal 等於

-ne //no equal 不等於

-gt //great than 大於

-lt // low than 小於

ge // great and equal 大於等於,注意沒有"-"

le //low and equal 小於等於,注意沒有「-」

示例:

if

[ $# -gt 0

]; then

如果shell的引數大於零個 則…

[`] 學名叫「倒引號」, 如果被「倒引號」括起來, 表示裡面需要執行的是命令。

比如dirname $0, 就表示需要執行 dirname $0 這個命令

【「」】 , 被雙引號括起來的內容, 裡面 出現 $ (美元號: 表示取變數名) `(倒引號: 表示執行命令) \**義號: 表示轉義), 其餘的才表示字串。

【』『】, 被單引號括起來的內容, 裡面所有的都表示串, 包括上面所說的 三個特殊字元。

在命令列狀態下單純執行 $ cddirname $0是毫無意義的。因為他返回當前路徑的"."。

這個命令寫在指令碼檔案裡才有作用,他返回這個指令碼檔案放置的目錄,並可以根據這個目錄來定位所要執行程式的相對位置(絕對位置除外)。

$0:當前shell程式的檔名

dirname $0,獲取當前shell程式的路徑

cddirname $0,進入當前shell程式的目錄

shell指令碼例子集錦(習題總結)

練習一 寫乙個指令碼 1.設定變數file的值為 etc passwd 2.依次向 etc passwd中的每個使用者問好,並且說出對方的id是什麼 f1 hello,root,your uid is0 3.統計乙個有多少個使用者 答案一 bin bash file etc passwd lines...

反彈shell集錦

就是控制端監聽在某tcp udp埠,被控端發起請求到該埠,並將其命令列的輸入輸出轉到控制端。reverse shell與telnet,ssh等標準shell對應,本質上是網路概念的客戶端與服務端的角色反轉。通常用於被控端因防火牆受限 許可權不足 埠被占用等情形 假設我們攻擊了一台機器,開啟了該機器的...

shell指令碼的使用

說明 chmod a x test.sh 使指令碼具有執行許可權 a 20 b 10 1.算術運算子列表 運算子 說明 舉例 加法 expr a b 結果為 30。減法 expr a b 結果為 10。乘法 expr a b 結果為 200。乘法使用不同 除法 expr a b 結果為 2。取餘 e...