2013-02-21 106 views
0

我需要一個腳本來搜索應用程序目錄中的文件並將其刪除。如果不存在,它將繼續安裝。Bash搜索和刪除?

我刪除·需要什麼:

/Applications/Cydia.app/Sections/Messages([email protected]'s-Repo).png 

如果不是發現我希望它繼續安裝。如果在繼續安裝之前找到該文件,我希望它將其刪除。

這是我的本錢:

#!/bin/bash 
file="/Applications/Cydia.app/Sections/Messages([email protected]'s-Repo).png" 
if [ -f "$file" ] 
then 
    echo "$file delteling old icon" 
    rm -rf /Applications/Cydia.app/Sections/Messages([email protected]'s-Repo).png 

else 
    echo "$file old icon deleted already moving on" 
fi 
+0

這個腳本創建的哪一部分是你掙扎的?查找文件?刪除它?運行安裝程序?如果你分享你的代碼,我們可能會幫助你解決這個問題。 – Johnsyweb 2013-02-21 08:08:27

+0

我得到一個子進程預安裝腳本,返回錯誤退出狀態2和子進程/ urs/bin/dpkg返回錯誤代碼(1) – user1996894 2013-02-21 08:14:27

+1

將shebang更改爲'/ bin/bash -x'以啓用調試,運行它並看看輸出 – 2013-02-21 08:15:25

回答

0

圓括號用於在中啓動子shell,因此您需要將文件名放在雙引號內(如同在文件測試中那樣)。

更改行:

rm -rf /Applications/Cydia.app/Sections/Messages([email protected]'s-Repo).png 

要:

rm -rf "${file}" 

,這將刪除該文件(假設沒有權限問題)。

+1

謝謝你的工作! – user1996894 2013-02-21 09:18:20

1

試試這個

#!/bin/bash 
if [ -e <your_file> ]; then 
    rm -f <your_file> 
fi 

這應該做的。

+0

謝謝你,我會給它一個 – user1996894 2013-02-21 08:15:07

+0

我現在的問題是終端不會chmod它到775,所以我必須通過手動編輯權限在我的iPad上執行它 – user1996894 2013-02-21 08:47:55

+0

我得到語法錯誤附近的意外令牌「 (「第6行是rm -f /Applications/Cydia.app/Sections/Messages([email protected]'s-Repo).png如何解決該錯誤? – user1996894 2013-02-21 09:10:55