my.bashrc имеет следующую функцию
function myfile {
file $1
}
export -f myfile
он отлично работает, когда я вызываю его напрямую
[email protected]:~$ myfile out.ogv
out.ogv: Ogg data, Skeleton v3.0
он не работает, когда я пытаюсь вызвать его через exec
[email protected]:~$ find ./ -name *.ogv -exec myfile {} \;
find: `myfile': No such file or directory
Есть ли способ вызвать bash script функции с exec?
Любая помощь приветствуется.
Обновление:
Спасибо за ответ Джим.
Но это именно то, чего я хотел избежать в первую очередь, так как у меня есть много функций полезности, определенных в моих сценариях bash, я хотел использовать их с другими полезными командами, такими как find -exec.
Я полностью понимаю вашу точку зрения, но find может запускать исполняемые файлы, он не знает, что переданный аргумент является функцией, определенной в script.
Я получаю ту же ошибку, когда пытаюсь выполнить exec, находится в приглашении bash.
$ exec myfile out.ogv
Я надеялся, что может быть какой-то опрятный трюк, которому exec может дать некоторую гипотетическую команду вроде "bash -myscriptname -myfunctionname".
Думаю, я должен попытаться найти способ bash script как можно быстрее и запустить его с помощью exec.