Zdravím, mám nějaký script napsaný v C, můžu do toho souboru přidat vlastní funkci která je pro bash a následně ji spustit? Chtěl bych zachovat pouze jeden soubor. Díky
Dobrý den,
Co myslíte tím script v C? C je přeci kompilovaný jazyk. Špatně jste naformuloval dotaz.
Jestli si domýšlím dobře, máte C program. Po zkompilování a spuštění binárky chcete, aby tento program zavolat shell/bash a předal mu nějaký script. Z vašeho dotazu vůbec nelze odvodit jestli chcete aby původní binárka čekala na dokončení scriptu, jestli má i zachytávat výstupy, nebo jestli se script má jen spustit a binárka bez ohledu na něj pokračovat dál.
V každém případě asi nejlépe Vám odpověděl ByCzech v 16:05:34, nastudujte si odkazované části C.
Nicméně mít v binárce zabalený script mi přijde zhůvěřilost. Script je interpretovaný jazyk jehož výhoda je to, že je čitelný a není nutné ho kompilovat. Je tím pádem snadno editovatelný a upravitelný i na jiný systém/distribuci nebo nástroje. Když ho zabalíte do binárky tak ztratíte výhodu editovatelnosti (musíte to prohnat kompilací), tím zhoršíte jeho čitelnost a srozumitelnost. Současně ten script ale úplně neskryjete (pokud to bylo vaším cílem), protože i v té binárce bude rozpoznatelný na první pohled a při trošce snahy i rozluštitelný. O problematice různých režimů iniciace shellu podle toho jak se volá a tím pádem rizika různých průběhů zpracování scriptu nemluvě...
A jestli jediným důvodem je "chci to mít v jednom souboru protože se mi to zdá lepší mít to pohromadě", tak vězte že to tak není. Za pár týdnů až měsíců až se k tomu budete potřebovat vrátit tak se sám proklejete. Tady pomůže jedině kvalitní dokumentace a komentáře vlastního kódu. Alespoň jako první záchytný bod si pro každý projekt poctivě psát Readme.txt a neházet zaběhnuté konvence za hlavu.