shell與linux命令使用

2021-08-17 16:12:21 字數 2605 閱讀 3042

$()與 ` `都是用來做命令替換的,也就是$()與 ` `內的內容都會被當成命令,完成命令重組功能。在多層次的復合替換中,盡量使用\$()。

ommand1 `command2 `command3` 

` 原本的意圖是要在 command2 `command3` 先將 command3 提換出來給 command 2 處理,然後再將結果傳給 command1 `command2 …` 來處理。然而,真正的結果在命令列中卻是分成了 `command2 ` 與 ``兩段。

正確的輸入應該如下:

command1 `command2 \`command3\`

` 換成 $( ) 就沒問題了:

command1 $(command2 $(command3))

` ` 基本上可用在全部的 unix shell 中使用,若寫成 shell script ,其移植性比較高。而 $( ) 並不見的每一種 shell 都能使用。

${}可以用來作變數替換,${}內的內容會被當成變數,實際上$var與$中,var都會被當成變數。但是當變數後如果跟有字串時,用${}**會更清晰。如$vari和$i,前者vari會被當成乙個變數,而後者是var變數替換後再跟i

${}還可以用來操作字串,作用類似linux中的str類函式。

$        //獲取字串長度

$ //去掉從左邊開始直到第乙個/(包含/)

$ //去掉從左邊開始直到最後乙個/(包含/)

$ //去掉從右邊開始直到第乙個/(包含/)

$ //去掉從右邊開始直到最後乙個/(包含/)

$//從左邊第start個字元開始以及子串中字元的個數,下標與陣列相同,從0開始

$ //從左邊第start個字元開始一直到結束

$//從右邊第start個字元開始以及字元的個數

$ //從右邊第start個字元開始一直到結束

下面是使用示例

$ // net/mdeditor可以用$ 針對不同的變數狀態賦值(未定義(unset)、空值(null)、非空值(non-null)),unset在shell中是刪除已定義的shell變數(包括環境變數)和shell函式,unset命令不能夠刪除具有唯讀屬性的shell變數和環境變數

$   file 未定義,則使用 test 作傳回值。(空值及非空值時不作處理) 

$ file 未定義或為空值,則使用 test 作傳回值。 (非空值時不作處理)

$ file 設為空值或非空值,均使用 test 作傳回值。(未定義時不作處理)

$ file 為非空值,則使用 test 作傳回值。 (未定義及空值時不作處理)

$ file 未定義,則使用 test 作傳回值,同時將 $file 定義為 test 。 (空值及非空值時不作處理)

$ file 未定義或為空值,則使用 test 作傳回值,同時將 $file 定義為 test 。 (非空值時不作處理)

$ file 未定義,則將 test 輸出至 stderr。 (空值及非空值時不作處理)

$ file 未定義或為空值,則將 test 輸出至 stderr。 (非空值時不作處理)

在shell中,$(( )) 的整數運算符號大致有這些:+ - * / :分別為 「加、減、乘、除」;% :餘數運算;& | ^ !:分別為 「and、or、xor、not」 運算。都是常見的運算子,$(( ))內被當成運算表示式。示例:

a=1; b=2; c=3

echo $((a + b + c)) # 也可以加$來表示變數:echo $(($a + $b + $c))

6

$(( )) 還可作不同進製(如二進位制、八進位、十六進製制)作運算,只是,輸出結果皆為十進位制而已

$((16#ff))返回16進製制數0xff的十進位制值。

純用 (( )) 也可重定義變數值,或作測試(相當於[ ]):

a=5; ((a++)) 可將 $a 重定義為 6

a=5; b=7; ((a < b)) 會得到 0 (true) 的返回值。

常見的用於 (( )) 的測試符號有如下這些:

<:小於

>:大於

<=:小於或等於

>=:大於或等於

==:等於

!=:不等於

Linux命令與shell程式設計大全

命令 mkdir 建立目錄 mkdir p 遞迴式去建立巢狀目錄 rmdir 刪除空目錄 cp r 將已有目錄複製到另一目錄下 cat more 檢視檔案下內容 touch 建立檔案 rm f 強制刪除檔案 rm r 遞迴刪除 mv 剪下 echo 輸出內容到控制台 echo 重定向 echo 內容...

linux命令與使用

linux命令與使用 一切事物皆為檔案 r為read讀取許可權,w為write寫入許可權,x為excute執行許可權。檔案許可權按順序為所有者許可權 使用者組許可權 其他使用者許可權。man 命令 快速找到linux的命令手冊說明,英文日常操作ls 列出根目錄 ls a 列出當前目錄所有檔案 包括隱...

Linux 字元介面與常用shell命令

字元介面與常用shell命令 1.密碼破解 執行級別 7個 0 關機 1 單使用者模式 2 多使用者模式 不提供nfs 3 完整的多使用者模式 僅提供字元介面 4 保留的執行級別 5 完整的多使用者模式 圖形化使用者介面 6 重新啟動 etc inittab 檔案 gedit etc inittab...