我正在用bash编写脚本。 我用
调用它find *.zip -type f -exec ./myscript.sh {} \;
在我的脚本顶部,我调用另一个这样的脚本:
#!/bin/bash
. ticktick.sh
我收到以下错误
.: ticktick.sh: file not found
如果我像这样调用脚本
./myscript.sh somefile.zip
它有效 如果我将ticktick.sh脚本放在我的路径中的另一个目录中,它就会中断,所以这不是一个选项。脚本调用的脚本是否有一些特殊的上下文?我显然是BASH脚本的新手。任何帮助将不胜感激
答案 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
位于同一目录中