查找-exec和Bash脚本

时间:2012-08-13 21:17:27

标签: linux bash

我正在用bash编写脚本。 我用

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

在我的脚本顶部,我调用另一个这样的脚本:

#!/bin/bash
. ticktick.sh

我收到以下错误

.: ticktick.sh: file not found

如果我像这样调用脚本

./myscript.sh somefile.zip

它有效 如果我将ticktick.sh脚本放在我的路径中的另一个目录中,它就会中断,所以这不是一个选项。脚本调用的脚本是否有一些特殊的上下文?我显然是BASH脚本的新手。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

我认为有两个问题。

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

位于同一目录中