很多時候我們在做運維的時候,我們需要做一些自動化,這時我們就需要寫一些shell指令碼,既然要用到shell指令碼,就免不了檔案操作。接下來我就教你怎麼判斷檔案是否存在。
工具/原料
一臺裝有bash的linux
方法/步驟
首先我們要touch一個檔案。
開啟它,輸入如下
#!/bin/bash
if [ -z $1 ]; then #如果沒有輸入引數,也就是第一個引數的字串長度為0
: #空語句
else
if [ -e $1 ]; then #如果檔案存在的話
if [ -f $1 ]; then #如果檔案是個普通檔案?
echo $1" is a text file."
elif [ -d $1 ]; then #如果檔案是個目錄檔案?
echo $1" is a directory."
elif [ -c $1 ]; then #如果檔案是個字元裝置?
echo $1" is a char device."
elif [ -b $1 ]; then #如果檔案是個塊裝置?
echo $1" is a block device."
else #否則
echo $1" is unknow file."
fi
fi
wq儲存起來,然後測試它。
第一步肯定是要測試引數的問題,如果沒引數會怎麼樣?
引數沒問題,我們再隨便輸入一個不存在的檔案試試?
這完全符合unix哲學,一個程式就該簡易,不說更多的廢話。很顯然,提醒檔案不存在是沒有必要的,並且缺少引數也是不需要的,我們只要結果,對於unix哲學來說,是這樣的。
接下來我們要測試我們的重點,我們的檔案。首先從普通檔案開始測試,那就測試自己吧。
然後測試我們的目錄?
測試我們的字元裝置?但是我們不知道機子上有哪些字元裝置怎麼辦?
那很簡單,我們只要ls -l /dev more 看一下就行,按enter鍵往下移。
只需要看前面的第一個字元是什麼就OK
c代表字元裝置,b代表塊裝置
那我們等會就測試/dev/adsp的字元裝置和/dev/hdc的塊裝置
看到了,我們先測試字元裝置。
按q退出more
來看看結果
然後再看看我們的塊裝置?