Linux Shell在目錄下使用for循環結合if查找文件的巧用

今天小編就爲大家分享一篇關於Linux Shell在目錄下使用for循環結合if查找文件的巧用,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

1.for循環對目錄做遍歷,if判斷文件是否爲要查找的文件。

示例1:

#!/bin/bash
if [ $# -lt 1 ];then
 echo "Usage:$0 + filepath"
 exit
fi          #判斷用戶是否輸入了參數
match=$1  #將要查的文件賦值給變量match
found=0    #定義一個初始變量作爲發生條件,當文件找到時對此變量重新賦值
for file in /etc/*  #對目錄進行遍歷
do
 if [ $file == $match ];then   #判斷文件是否匹配
   echo "the file $match was found!"
   found=1               #當文件匹配時,對初始變量重新賦值
   break                  #文件找到後跳出循環
 fi
done
[ $found -ne 1 ] && echo "the file $match is not in /etc directory."   #做最終的判斷,文件未找到時found仍然是0,判斷條件成立,輸出文件未找到;當文件找到時,found被賦值爲1,條件不成立,不做輸出。

示例2:對腳本做修改,讓用戶自定義要查找的文件以及在那個目錄下查找

#!/bin/bash
if [ $# -lt 2 ];then
 echo "Usage:$0 + filepath + directorypath"
 exit
fi
match=$1
found=0
for file in ${2}*    #在位置參數2,用戶給定的目錄中(一層目錄)遍歷所有文件
do
 if [ $file == $match ];then
   echo "the file $match was found!"
   found=1
   break
 fi
done
[ $found -ne 1 ] && echo "the file $match is not in /etc directory."

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對神馬文庫的支持。如果你想了解更多相關內容請查看下面相關鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章