當前位置:首頁 » 知網查重 » shell判斷目錄

shell判斷目錄

發布時間: 2021-03-10 01:14:46

『壹』 shell判斷文件,目錄是否存在或者具有許可權

#!/bin/sh
myPath="/var/log/httpd/"
myFile="/var /log/httpd/access.log"
#這里的-x 參數判斷$myPath是否存在並且是否具有可執行許可權
if [ ! -x "$myPath"]; then
mkdir "$myPath"
fi
#這里的-d 參數判斷$myPath是否存在
if [ ! -d "$myPath"]; then
mkdir "$myPath"
fi
#這里的-f參數判斷$myFile是否存在
if [ ! -f "$myFile" ]; then
touch "$myFile"
fi
#其他參數還有-n,-n是判斷一個變數是否是否有值
if [ ! -n "$myVar" ]; then
echo "$myVar is empty"
exit 0
fi
#兩個變數判斷是否相等
if [ "$var1" = "$var2" ]; then
echo '$var1 eq $var2'
else
echo '$var1 not eq $var2'
fi
========================================
shell 判斷語句
流程式控制制 "if" 表達式 如果條件為真則執行then後面的部分: if ....; then
....
elif ....; then
....
else
....
fi
大多數情況下,可以使用測試命令來對條件進行測試。比如可以比較字元串、判斷文件是否存在及是否可讀等等… 通常用" [ ] "來表示條件測試。注意這里的空格很重要。要確保方括弧的空格。
[ -f "somefile" ] :判斷是否是一個文件
[ -x "/bin/ls" ] :判斷/bin/ls是否存在並有可執行許可權
[ -n "$var" ] :判斷$var變數是否有值
[ "$a" = "$b" ] :判斷$a和$b是否相等 -r file用戶可讀為真
-w file用戶可寫為真
-x file用戶可執行為真
-f file文件為正規文件為真
-d file文件為目錄為真
-c file文件為字元特殊文件為真
-b file文件為塊特殊文件為真
-s file文件大小非0時為真
-t file當文件描述符(默認為1)指定的設備為終端時為真
######################################################### 含條件選擇的shell腳本
對於不含變數的任務簡單shell腳本一般能勝任。但在執行一些決策任務時,就需要包含if/then的條件判斷了。shell腳本編程支持此類運算,包 括比較運算、判斷文件是否存在等。基本的if條件命令選項有: -eq —比較兩個參數是否相等(例如,if [ 2 –eq 5 ])
-ne —比較兩個參數是否不相等
-lt —參數1是否小於參數2
-le —參數1是否小於等於參數2
-gt —參數1是否大於參數2
-ge —參數1是否大於等於參數2
-f — 檢查某文件是否存在(例如,if [ -f "filename" ])
-d — 檢查目錄是否存在
幾 乎所有的判斷都可以用這些比較運算符實現。腳本中常用-f命令選項在執行某一文件之前檢查它是否存在。 ################################################################## 判斷文件是否存在 #!/bin/sh
today=`date -d yesterday +%y%m%d`
file="apache_$today.tar.gz"
cd /home/chenshuo/shell
if [ -f "$file" ];then
echo "OK"
else
echo "error $file" >error.log
mail -s "fail backup from test" [email protected] <error.log
fi

『貳』 shell中判斷文件和目錄,並顯示相應信息

有問制題可以HI我
[root@firewall ~]# sh test1.sh
/etc/passwd
/etc/passwd是文件,大小為4.0K
[root@firewall ~]# sh test1.sh
/etc
/etc是目錄,有142文件
[root@firewall ~]# sh test1.sh
/dev/sda
沒有該文件或目錄
[root@firewall ~]# sh test1.sh
/dev/sda /etc/passwd
你輸錯了

#!/bin/sh
read text

if [ -f "$text" ];then
echo "$text是文件,大小為` -h $text | awk '{print $1}'`"
elif [ -d "$text" ];then
echo "$text是目錄,有`ls -l $text | grep -v "^d" | wc -l`文件"
elif [ -e "$text" -a ! -f "$text" -a ! -d "$text" ];then
echo "沒有該文件或目錄"
else
echo "你輸錯了"
fi

exit

『叄』 Shell腳本判斷是文件還是目錄怎麼寫

#!/bin/bash

if[-d$1]
then
echo"$1isadirectory."
exit
elif[-f$1]
then
echo-n"$1isafile,"
if[-L$1]
then
echo"anditisalsoasymboliclink."
A=`ls-L$1`
if[-e$A]
then
echo"Symboliclinkexist."
else
echo"Symboliclinknotexist."
fi
exit
else
echo"butitisnotasymboliclink."
exit
fi
fi

『肆』 shell腳本,判斷一個目錄內是文件還是子目錄

你能不能一次把問題提完整呢。
shell 沒有提供處理文件系統的底層功能。
可以使用重定向,在得到一行後就立刻匹配,完成後立刻退出。它不需要等到ls命令完成。可以操作目錄下存在大量文件的情況。
效率最快的是這個:

ls /opt -1F --sort=none | ( read LINE;echo "$LINE"| if grep -q "/$" ; then exit 0 ;else exit 1 ; fi ;)

這個命令返回0 表示/opt 目錄下存在目錄(不代表全部都是目錄,這條命令基於你在問題中的假設)。返回非0表示包含非目錄文件。
-1 表示ls 輸出一行個文件。
-F 表示輸出的每個文件後綴一個符號表示文件類型,文件夾的後綴為 /
--sort=none 表示按照磁碟存儲順序進行輸出,不進行排序。
|grep -q '/$' 表示 如果匹配到/ 結尾的行。

最近幾天你提的問題相當零散。都不知道你的思維對不對。
shell 本身就不是高效率的語言。想要高效率應該使用其他腳本語言,例如perl 。

『伍』 使用shell如何判斷指定目錄是否有某個文件

R內建多種統計學及數字分析功能。因為S的血緣,R比其他統計學或數學專用的編程語言有更強的物件導向功能。
R的另一強項是繪圖功能,制圖具有印刷的素質,也可加入數學符號。
雖然R主要用於統計分析或者開發統計相關的軟體,但也有人用作矩陣計算。其分析速度可媲美GNU Octave甚至商業軟體MATLAB。

『陸』 shell判斷目錄下是否有文件

if [ `ls b|wc -l` -eq 0 ];then
echo no file

fi

『柒』 shell判斷目錄是否存在

判斷表達式中直接用-d判斷即可,參考代碼如下:

myFolder=/home/test

if[-d$myFolder];then

echo"Folderexists!"

else

echo"Folderdoesn'texist!"

fi

Shell基本上是一個命令解釋器,類似於DOS下的command。它接收用戶命令(如ls等),然後調用相應的應用程序。較為通用的shell有標準的Bourne shell (sh)和C shell (csh)。

(7)shell判斷目錄擴展閱讀:

shell文件描述符

-e 判斷對象是否存在

-d 判斷對象是否存在,並且為目錄

-f 判斷對象是否存在,並且為常規文件

-L 判斷對象是否存在,並且為符號鏈接

-h 判斷對象是否存在,並且為軟鏈接

-s 判斷對象是否存在,並且長度不為0

-r 判斷對象是否存在,並且可讀

-w 判斷對象是否存在,並且可寫

-x 判斷對象是否存在,並且可執行

『捌』 shell腳本判斷文件夾下是否有文件

我們可以通過判斷文件夾中的文件的列表是否版為空來權判斷:

if[[-n$(ls)]];then
#Dosomethinghere
else
#Dosomethingelsehere
fi

『玖』 shell腳本判斷是文件還是文件夾

ls
-ld
文件夾路徑
|
awk
'{print
int($5/1024)}'
或者:

-b
文件夾路徑
|
awk
'{print
int($1/1024)}'
跟你上面計算文件大小類似,得到的都是以kb為單版位權的大小。
如果要以byte為單位,不要除以1024也不要int取整就是了。
注意:linux的ext2或ext3文件系統會給目錄分配一個inode塊(索引節點),用來記錄文件信息,所以文件夾的大小不是簡單地將其中文件大小累加就能得到的,還包括了這個索引節點的大小。索引節點是一個結構,它包含了一個文件的長度、創建及修改時間、許可權、所屬關系、磁碟中的位置等信息。

『拾』 Shell腳本中判斷文件,目錄是否存在或者具有

#!/bin/sh
NovaPath=」抄/var/log/httpd/」
NovaFile=」/var /log/httpd/access.log」
#這里的-x 參數判斷$NovaPath是否存在並且是否具有可執行許可權
if [ ! -x "$NovaPath"]; then
mkdir 「$NovaPath」
fi
#這里的-d 參數判斷$NovaPath是否存在
if [ ! -d "$NovaPath"]; then
mkdir 「$NovaPath」
fi
#這里的-f參數判斷$NovaFile是否存在
if [ ! -f "$NovaFile" ]; then
touch 「$NovaFile」
fi
#其他參數還有-n,-n是判斷一個變數是否是否有值
if [ ! -n "$NovaVar" ]; then
echo 「$NovaVar is empty」
exit 0
fi
#兩個變數判斷是否相等
if [ "$var1" = "$var2" ]; then
echo 『$var1 eq $var2′
else
echo 『$var1 not eq $var2′
fi

熱點內容
塗鴉論文 發布:2021-03-31 13:04:48 瀏覽:698
手機資料庫應用 發布:2021-03-31 13:04:28 瀏覽:353
版面217 發布:2021-03-31 13:04:18 瀏覽:587
知網不查的資源 發布:2021-03-31 13:03:43 瀏覽:713
基金贖回參考 發布:2021-03-31 13:02:08 瀏覽:489
懸疑故事範文 發布:2021-03-31 13:02:07 瀏覽:87
做簡單的自我介紹範文 發布:2021-03-31 13:01:48 瀏覽:537
戰略地圖參考 發布:2021-03-31 13:01:09 瀏覽:463
收支模板 發布:2021-03-31 13:00:43 瀏覽:17
電氣學術會議 發布:2021-03-31 13:00:32 瀏覽:731