Czy jest jakiś sposób na przekazanie funkcji od jednego użytkownika do drugiego?
Na przykład mam mały skrypt Bash, który wykonuję jako root:
#!/bin/bash
user_func(){
whoami
exit
}
su vagrant -c 'user_func'
Jednak funkcja user_func nie jest zdefiniowana dla użytkownika Vagrant, tylko dla rootowania i nie może zostać wykonana.
Inną opcją byłoby posiadanie wielu linii
su vagrant -c 'cmd1'
su vagrant -c 'cmd2'
, etc
Lub, wykonaj wiele poleceń np .: su vagrant -c 'cmd1; cmd2; cmd3;', ale wolałbym nie mieć nadmiaru, szczególnie gdy próbujesz wykonać więcej niż 5 poleceń jako użytkownik Vagrant.
Czy można przekazać funkcję innemu użytkownikowi z tego samego skryptu (np. Nie tworząc skryptu na dysku jako inny użytkownik, a następnie wykonując wygenerowany skrypt)? Czy jest jeszcze inna opcja, którą przeoczam?