我的 .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脚本函数?非常感谢任何帮助。
更新:
感谢Jim的回复。
但这正是我首先想要避免的,因为我在我的Bash脚本中定义了许多实用函数,我希望将它们与其他有用的命令(例如find-exec)一起使用。
尽管我完全理解你的观点,但find可以运行可执行文件,它不知道传递的参数是在脚本中定义的函数。
当我在Bash提示符上尝试执行时,我将得到相同的错误。
$ exec myfile out.ogv
我希望能有一些巧妙的诀窍,让exec执行一个虚构的命令,例如“bash -myscriptname -myfunctionname”。
我想我应该尝试找到一种方法来动态创建一个bash脚本,并使用exec运行它。