bash - 如何通过 find -exec 使用 .bashrc 中定义的 bash 函数

标签 bash function find exec

我的.bashrc 有以下功能

function myfile {
 file $1
}
export -f myfile

当我直接调用它时它工作正常

rajesh@rajesh-desktop:~$ myfile out.ogv 
out.ogv: Ogg data, Skeleton v3.0

当我尝试通过 exec 调用它时它不起作用

rajesh@rajesh-desktop:~$ find ./ -name *.ogv -exec myfile {} \;
find: `myfile': No such file or directory

有没有办法用 exec 调用 bash 脚本函数?

非常感谢任何帮助。

更新:

感谢吉姆的回复。

但这正是我首先想要避免的,因为我在我的 bash 脚本中定义了很多实用函数,我想将它们与其他有用的命令一起使用,例如 find -exec。

不过我完全明白你的意思,find 可以运行可执行文件,它不知道传递的参数是脚本中定义的函数。

当我尝试在 bash 提示符下执行时,我会得到同样的错误。

$ exec myfile out.ogv

我希望可能有一些巧妙的技巧可以给 exec 一些假设的命令,比如“bash -myscriptname -myfunctionname”。

我想我应该尝试找到一些方法来动态创建 bash 脚本并使用 exec 运行它。

最佳答案

find ./ -name *.ogv -exec bash -c 'myfile {}' \;

关于bash - 如何通过 find -exec 使用 .bashrc 中定义的 bash 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3056788/

相关文章:

linux - 如何使用斜杠修改配置参数值

用于自动生成 cntlm 代理密码的 Bash 脚本

ruby-on-rails - rails : How to pass data to Bash Script

c++ - map 复杂查找操作

VBA:在所有工作簿表中使用类似查找的函数而不循环

linux - 将脚本更改为 For Do Done 循环

python - 如何在函数内获取函数对象(Python)

javascript - 如何在变量中返回 while 循环的结果

ios - 将字典数组传递给函数的问题

linux - Linux 中的绝对路径(文件路径中有空格)