shell中奇怪的 s檔案狀態判斷

2022-03-15 15:17:31 字數 521 閱讀 9561

在看乙個ksh指令碼,由於ksh的特性,一般用在unix系統較多,但使用者群體還是不及bash。

其他沒什麼,基本和bash和sh通用,遇到了乙個很奇怪的檔案狀態判斷:

-s :判斷檔案是否為空

使用後發現,原來和理解大不相同,尤其是放在條件語句中,過程就不多說了,直接給結果:

#!/bin/ksh

file=$1

echo "checking file $file..."

if [[ -s $file ]] ; then

echo "not empty!"

else

echo "empty!"

fi可見該選項-s是乙個負邏輯,和-f -x正邏輯有很大不同。

理由:test -s a.txt # a.txt 為空

返回1理解了吧。。。

所以-s最好理解成 has size 為好~~

注(-s 在系統幫助中的意思是 -s file exists and has a size greater than zero.)

shell中各種奇怪的符號整理

子shell中執行 數值比較,運算,支援正則 i 1 i 3 i commond1 commond2 命令替換 commond 支援運算 1 2 集合,可將命令與字串隔開 變數的引用 檔案測試,數值比較,檔案比較,字串比較 a 且,o 或 增加了對正則的支援,包含,或,且 支援變數運算 2 2 2 ...

(2 8)shell中各種奇怪的符號

usr bin bash read p please input number num num3 123yy num3 0 9 echo 表示 num3變數是否匹配後面的正則模式,表示 如果不是數字,就echo 1 while true do if num 0 9 then 後面是正則比較,不要加 ...

K8S中pod健康狀態的檢查

什麼是 container probes 通過k8s的架構圖,我們可以發現,每個node節點上都有 kubelet 這個元件,container probe 容器探針 也就是容器的健康檢查是由 kubelet 定期執行的。container probe有以下兩種方式,分別為liveness prob...