教你怎麼使用shell判斷檔案是否存在?

很多時候我們在做運維的時候,我們需要做一些自動化,這時我們就需要寫一些shell指令碼,既然要用到shell指令碼,就免不了檔案操作。接下來我就教你怎麼判斷檔案是否存在。

工具/原料

一臺裝有bash的linux

方法/步驟

首先我們要touch一個檔案。

教你怎麼使用shell判斷檔案是否存在

開啟它,輸入如下

#!/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

教你怎麼使用shell判斷檔案是否存在

wq儲存起來,然後測試它。

教你怎麼使用shell判斷檔案是否存在

第一步肯定是要測試引數的問題,如果沒引數會怎麼樣?

教你怎麼使用shell判斷檔案是否存在

引數沒問題,我們再隨便輸入一個不存在的檔案試試?

教你怎麼使用shell判斷檔案是否存在

這完全符合unix哲學,一個程式就該簡易,不說更多的廢話。很顯然,提醒檔案不存在是沒有必要的,並且缺少引數也是不需要的,我們只要結果,對於unix哲學來說,是這樣的。

接下來我們要測試我們的重點,我們的檔案。首先從普通檔案開始測試,那就測試自己吧。

教你怎麼使用shell判斷檔案是否存在

然後測試我們的目錄?

教你怎麼使用shell判斷檔案是否存在

測試我們的字元裝置?但是我們不知道機子上有哪些字元裝置怎麼辦?

那很簡單,我們只要ls -l /dev more 看一下就行,按enter鍵往下移。

只需要看前面的第一個字元是什麼就OK

c代表字元裝置,b代表塊裝置

那我們等會就測試/dev/adsp的字元裝置和/dev/hdc的塊裝置

教你怎麼使用shell判斷檔案是否存在

教你怎麼使用shell判斷檔案是否存在

看到了,我們先測試字元裝置。

按q退出more

來看看結果

教你怎麼使用shell判斷檔案是否存在

然後再看看我們的塊裝置?

教你怎麼使用shell判斷檔案是否存在

相關問題答案