shell 醬紫的一些判斷

2021-10-12 01:16:44 字數 3032 閱讀 6609

判斷數字

判斷檔案等

獲取路徑中目錄和檔名

條件測試:

格式1: test 條件表示式

格式2: [ 條件表示式 ]

格式3: [

[ 條件表示式 ]

] --> 支援正則

[ -z "$***"

]

[ -n "$a"

]

[

["$***"

=="***"

]]

[

["字串1"

!="字串2"

]]

[

["***"

=~ x$ ]

]

[

["***"

=~ ^x ]

]

a=

"bbb"if[

$= 3 ]

;...

file=/dir1/dir2/dir3/my.file.txt

$: 拿掉第一條 / 及其左邊的字串:dir1/dir2/dir3/my.file.txt

$: 拿掉最後一條 / 及其左邊的字串:my.file.txt

$: 拿掉第乙個 . 及其左邊的字串:file.txt

$: 拿掉最後乙個 . 及其左邊的字串:txt

$: 拿掉最後條 / 及其右邊的字串:/dir1/dir2/dir3

$: 拿掉第一條 / 及其右邊的字串:(空值)

$: 拿掉最後乙個 . 及其右邊的字串:/dir1/dir2/dir3/my.file

$: 拿掉第乙個 . 及其右邊的字串:/dir1/dir2/dir3/my

記憶的方法為:

# 是去掉左邊(在鍵盤上 # 在 $ 之左邊)

% 是去掉右邊(在鍵盤上 % 在 $ 之右邊)

單一符號是最小匹配;兩個符號是最大匹配(貪婪匹配)。

[

["123"

=~ ^[0-9]+$ ]

]

[ 1 = 1 ]
[

[$num

=~ ^[0-9]\.[0-9]+$ ||

$num

=~ ^[0-9]+$ ]

]

[[$?

== 0 ]

]

整數

[ 1 -gt 10 ] 大於

[ 1 -lt 10 ] 小於

[ 1 -eq 10 ] 等於

[ 1 -ne 10 ] 不等於

[ 1 -ge 10 ] 大於等於

[ 1 -le 10 ] 小於等於

[ -f  "***.sh"

]

[ -d  "/tmp/"

]

[ -x 1.sh ]
4)判斷檔案 

[ file1 –ef file2 ] 兩個檔案具有同樣的裝置號和i結點號

[ file1 –nt file2 ] 檔案1比檔案2 新

[ file1 –ot file2 ] 檔案1比檔案2 舊

[ –b file ] 檔案存在並且是塊裝置檔案

[ –c file ] 檔案存在並且是字元裝置檔案

[ –d file ] 檔案存在並且是目錄

[ –e file ] 檔案存在 exist

[ –f file ] 檔案存在並且是普通檔案

[ –g file ] 檔案存在並且是設定了組id

[ –g file ] 檔案存在並且屬於有效組id

[ –h file ] 檔案存在並且是乙個符號鏈結(同-l)

[ –k file ] 檔案存在並且設定了sticky位

[ –b file ] 檔案存在並且是塊裝置檔案

[ –l file ] 檔案存在並且是乙個符號鏈結(同-h)

[ –o file ] 檔案存在並且屬於有效使用者id

[ –p file ] 檔案存在並且是乙個命名管道

[ –r file ] 檔案存在並且可讀

[ –s file ] 檔案存在並且是乙個套接字

[ –t fd 檔案描述符是在乙個終端開啟的

[ –u file ] 檔案存在並且設定了它的set-user-id位

[ –w file ] 檔案存在並且可寫

[ –x file ] 檔案存在並且可執行

basename

"/home/temp/1.test"

# 取路徑中的檔名

dirname

"/home/temp/1.test"

# 取路徑中目錄

shell 醬紫的陣列

普通陣列 只能用整數作為陣列的索引 0 下標 關聯陣列 可以使用字串作為陣列的索引 普通陣列定義 books linux shell awk sed echo 語法 陣列名 index 變數值 bin bash area 11 23 area 13 37 area 51 ufo 定義方法2 arra...

關於Linux 中shell的一些判斷

例如 f opt jdk 7u79 linux x64.tar.gz 指令碼意思為 jdk 7u79 linux x64.tar.gz為檔案 為真 則執行大括號內的內容 f opt jdk 7u79 linux x64.tar.gz 取非符號用法 e filename 如果 filename存在,則...

shell的一些筆記

如何使用基於ssh的scp遠端複製檔案?如何利用python傳?scp home amazing felix.tar.gz root 遠端ip home dsp python傳 pytyon m httpserver 8085 wget 如何檢視本機外網ip?curl ident.me 返回ip和地...