2012-08-13 102 views
0

我在bash中編寫腳本。 我查找-exec和bash腳本

find *.zip -type f -exec ./myscript.sh {} \; 

調用它在我的腳本的頂部,我調用另一個腳本是這樣的:

#!/bin/bash 
. ticktick.sh 

我收到以下錯誤

.: ticktick.sh: file not found 

如果我調用腳本像此

./myscript.sh somefile.zip 

它的工作原理 如果我把ticktick.sh腳本放在另一個目錄的路徑中,它就會中斷,所以這不是一個選項。腳本用find來調用有什麼特殊的上下文嗎?我明顯是BASH腳本的新手。任何幫助,將不勝感激

回答

1

我認爲有2個問題。

1:如果你要搜索當前目錄下的所有zip文件,你必須寫下面的命令

find . -type f -name *.zip -exec ... 

2:你./之前執行myscript.sh。所以myscript.sh必須在當前的工作目錄中。如果您的腳本位於/ home/jd /並且您從/ home /執行它/您的myscript.sh將找不到。 首先你要確定你的文件的目錄:

install_path=$(dirname $(readlink -f $0)) 

所以你完全find命令是:

find . -type f -name *.zip -exec $install_path/myscript.sh {} \; 

的myscript.sh文件必須在同一目錄中ticktick.sh