我的.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/