判斷數字
判斷檔案等
獲取路徑中目錄和檔名
條件測試:
格式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和地...