2010-02-06 109 views
0

您好,我如何使用if/else語句來查找文件。比方說,如果我有一個file.txt的根目錄,我希望能夠編寫一個說明if [ file.txt ]不存在的代碼,然後使用find/-newer sshh > file.txt或者使用[file.txt],然後在發生任何更改時郵寄更改。if then else語句查找文件

回答

2

在bash中,-f會告訴你文件是否存在。

if [ -f /file.txt ]; 
    then 
    // do something with mail 
    else 
    // do something with find 
fi 
+0

fi?意思。最後? – 2010-02-06 04:57:40

+1

你的'test'語法是假的。 – 2010-02-06 05:03:52

+0

對不起,省略了括號內的空格。 – danben 2010-02-06 14:50:03

0

你沒有真正告訴我們很多關於你的平臺,但恕我直言 - 如果你不知道該怎麼做這樣的事關你的頭查找和基本的shell內建的頂部 - 你應該使用更高級的語言。這將更容易概念化和更容易維護。

將它作爲一種學習體驗 - 改變爲使用python,perl或您選擇的語言進行實驗。

0

像這樣的東西應該工作:

if test -e "file.txt"; then 
    cat file.txt | mail -s "file.txt changed" [email protected] 
else 
    find/-newer sshh > file.txt 
fi 

但你很可能希望將其與diff相結合,以找出是否在文件結構發生變化。

+1

你得到了「無用的貓」獎。 – 2010-02-06 16:03:17

+0

謝謝,如果它是一個獎項,它一定是好的:-) – 2010-02-06 23:57:18