my .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
есть ли способ вызвать функции bash-скрипта с помощью exec?
Любая помощь с благодарностью.
Обновление:
Спасибо за ответ, Джим.
Но это именно то, чего я в первую очередь хотел избежать, так как у меня много служебных функций, определенных в моих скриптах bash, я хотел использовать их с другими полезными командами, такими как find -exec.
Я полностью понимаю вашу точку зрения, хотя find может запускать исполняемые файлы, она не знает, что переданный аргумент является функцией, определенной в скрипте.
Я получу ту же ошибку при попытке выполнить exec в приглашении bash.
$ exec myfile out.ogv
Я надеялся, что может быть какая-то хитрая уловка, что exec может быть дана некоторая гипотетическая команда типа "bash -myscriptname -myfunctionname".
Я думаю, что я должен попытаться найтикакой-нибудь способ создать bash-скрипт на лету и запустить его с помощью exec.