linux-shell判斷文件

實(shí)現(xiàn)代碼一、

#!/bin/sh

# 判斷文件是否存在

# link:www.jb51.net

# date:2013/2/28

myPath="/var/log/httpd/"

myFile="/var /log/httpd/access.log"

# 這里的-x 參數(shù)判斷$myPath是否存在并且是否具有可執(zhí)行權(quán)限

if [ ! -x "$myPath"]; then

mkdir "$myPath"

fi

# 這里的-d 參數(shù)判斷$myPath是否存在

if [ ! -d "$myPath"]; then

mkdir "$myPath"

fi

# 這里的-f參數(shù)判斷$myFile是否存在

if [ ! -f "$myFile" ]; then

touch "$myFile"

fi

# 其他參數(shù)還有-n,-n是判斷一個(gè)變量是否是否有值

if [ ! -n "$myVar" ]; then

echo "$myVar is empty"

exit 0

fi

# 兩個(gè)變量判斷是否相等

if [ "$var1" = "$var2" ]; then

echo '$var1 eq $var2'

else

echo '$var1 not eq $var2'

fi

實(shí)現(xiàn)代碼二、

#shell判斷文件夾是否存在

#如果文件夾不存在,創(chuàng)建文件夾

if [ ! -d "/myfolder" ]; then

mkdir /myfolder

fi

#shell判斷文件,目錄是否存在或者具有權(quán)限

folder="/var/www/"

file="/var/www/log"

# -x 參數(shù)判斷 $folder 是否存在并且是否具有可執(zhí)行權(quán)限

if [ ! -x "$folder"]; then

mkdir "$folder"

fi

# -d 參數(shù)判斷 $folder 是否存在

if [ ! -d "$folder"]; then

mkdir "$folder"

fi

# -f 參數(shù)判斷 $file 是否存在

if [ ! -f "$file" ]; then

touch "$file"

fi

# -n 判斷一個(gè)變量是否有值

if [ ! -n "$var" ]; then

echo "$var is empty"

exit 0

fi

# 判斷兩個(gè)變量是否相等

if [ "$var1" = "$var2" ]; then

echo '$var1 eq $var2'

else

echo '$var1 not eq $var2'

fi

-f 和-e的區(qū)別

Conditional Logic on Files

-a file exists.

-b file exists and is a block special file.

-c file exists and is a character special file.

-d file exists and is a directory.

-e file exists (just the same as -a).

-f file exists and is a regular file.

-g file exists and has its setgid(2) bit set.

-G file exists and has the same group ID as this process.

-k file exists and has its sticky bit set.

-L file exists and is a symbolic link.

-n string length is not zero.

-o Named option is set on.

-O file exists and is owned by the user ID of this process.

-p file exists and is a first in, first out (FIFO) special file or

named pipe.

-r file exists and is readable by the current process.

-s file exists and has a size greater than zero.

-S file exists and is a socket.

-t file descriptor number fildes is open and associated with a

terminal device.

-u file exists and has its setuid(2) bit set.

-w file exists and is writable by the current process.

-x file exists and is executable by the current process.

-z string length is zero.

是用 -s 還是用 -f 這個(gè)區(qū)別是很大的!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 個(gè)人學(xué)習(xí)批處理的初衷來(lái)源于實(shí)際工作;在某個(gè)迭代版本有個(gè)BS(安卓手游模擬器)大需求,從而在測(cè)試過(guò)程中就重復(fù)涉及到...
    Luckykailiu閱讀 4,983評(píng)論 0 11
  • 1.創(chuàng)建文件夾 !/bin/sh mkdir -m 777 "%%1" 2.創(chuàng)建文件 !/bin/sh touch...
    BigJeffWang閱讀 10,488評(píng)論 3 53
  • 為何叫做 shell ? shell prompt(PS1) 與 Carriage Return(CR) 的關(guān)系?...
    Zero___閱讀 3,321評(píng)論 3 49
  • 微涼落葉花,雨落窗臺(tái)下,深夜相思苦,靜心看繁華。 不負(fù)相思不負(fù)卿,無(wú)悔任由天地行。執(zhí)眼千尋三世影,攜看今朝雨雪晴。...
    殷九娘閱讀 889評(píng)論 0 1
  • http://www.itdecent.cn/p/d149043d103a http://www.jianshu....
    未聞椛洺閱讀 199評(píng)論 0 0

友情鏈接更多精彩內(nèi)容