Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Jan Vodolan 29. 04. 2010, 15:59:01

Název: [VYŘEŠENO] Jak použít funkci ve vnořeném shell scriptu?
Přispěvatel: Jan Vodolan 29. 04. 2010, 15:59:01
Dobrý den / ahoj,
upravuji složitý systém scriptů volající se navzájem... a nadefinoval jsem si funci kterou bych chtěl použít kdekoli (v jakémkoli z těchto scriptů). Funkce je ve vstupním scriptu ze kterého se pouští vše ostatní.

U proměnné stačí jí exportovat (#export VAR=123). Ale u funkce nevím jak na to. Netušíte někdo? Předem díky.
W
Název: Re: Jak použít funkci ve vnořeném shell scriptu?
Přispěvatel: Sleep_Walker 29. 04. 2010, 19:16:21
urcite lze nasourcovat soubor s funkci v kazdem souboru, ale tomu se asi chcete vyhnout, takze bych si to nasourcoval v shell skriptu, ktery spousti vsechny skripty a to by melo/mohlo stacit
Název: Re: Jak použít funkci ve vnořeném shell scriptu?
Přispěvatel: Tom22 29. 04. 2010, 19:28:12
V bashi to jde:
Kód: [Vybrat]
function f1() {
  echo $1
}
export -f f1

A nebo dát definice funkcí do souboru a vložit ho všude:
Kód: [Vybrat]
. functions.sh
Název: Re: Jak použít funkci ve vnořeném shell scriptu?
Přispěvatel: Sleep_Walker 29. 04. 2010, 21:30:27
hezke, export -f jsem neznal
Název: Re: Jak použít funkci ve vnořeném shell scriptu?
Přispěvatel: Jan Vodolan 30. 04. 2010, 07:19:17
export -f
Díky přesně tohle jsem potřeboval ((-:
Trošku mě mrzí že o tom není zmínka v manuálových stránkách ani v TLDP (a nebo jsem jen špatně hledal).

Díky moc a přeji krásný den ((-:
  W
Název: Re: Jak použít funkci ve vnořeném shell scriptu?
Přispěvatel: Tom22 01. 05. 2010, 10:51:27
...
Trošku mě mrzí že o tom není zmínka v manuálových stránkách ani v TLDP (a nebo jsem jen špatně hledal).
...

V manuálu bashe to je - u mě v en verzi v sekci FUNCTIONS v posledním odstavci (doufám, že se manuál v distribucích neliší).
Abych pravdu řekl: neznal jsem to taky - i řešení cizího problému se někdy vyplatí  :)