gpt4 book ai didi

linux - 查找 -exec 和 Bash 脚本

转载 作者:太空宇宙 更新时间:2023-11-04 11:29:58 25 4
gpt4 key购买 nike

我正在用 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.:如果要搜索当前目录下的所有zip文件,就要写下面的命令

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

2.: 你执行 myscript.sh 之前加上 ./。所以 myscript.sh 必须在当前工作目录中。如果您的脚本位于/home/jd/并且您从/home/执行它,您的 myscript.sh 将找不到。首先你必须确定你的文件目录:

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

所以你完整的查找命令是:

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

myscript.sh 文件必须与 ticktick.sh 位于同一目录

关于linux - 查找 -exec 和 Bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11942457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com