Co můžete dělat s eval příkaz? Proč je to užitečné? Je to nějaká vestavěná funkce v bash? Neexistuje žádný man stránku pro to..
Přijatá odpověď:
eval je součástí POSIX. Je to rozhraní, které může být vestavěné do shellu.
Je to popsáno v „POSIX Programmer’s Manual“:http://www.unix.com/man-page/posix/1posix/eval/
eval - construct command by concatenating arguments
Vezme argument a vytvoří z něj příkaz, který provede shell. Toto je příklad manuálové stránky:
1) foo=10 x=foo
2) y='$'$x
3) echo $y
4) $foo
5) eval y='$'$x
6) echo $y
7) 10
- V prvním řádku definujete
$foos hodnotou'10'a$xs hodnotou'foo'. - Nyní definujte
$y, který se skládá z řetězce'$foo'. Znak dolaru musí být uvozen
pomocí'$'. - Chcete-li zkontrolovat výsledek,
echo $y. - Výsledkem bude řetězec
'$foo' - Nyní zopakujeme přiřazení s
eval. Nejprve vyhodnotí$xna řetězec'foo'. Nyní máme příkazy=$fookterý bude vyhodnocen jakoy=10. - Výsledek
echo $yje nyní hodnota'10'.
Toto je běžná funkce v mnoha jazycích, např. Perl a JavaScript.
Podívejte se na perldoc eval pro další příklady:http://perldoc.perl.org/functions/eval.html
Linux – odesílání textového vstupu na samostatnou obrazovku?
Skript pro sledování nových souborů ve složce?