GNU/Linux >> Znalost Linux >  >> Linux

Příkaz „eval“ v Bash?

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
  1. V prvním řádku definujete $foo s hodnotou '10' a $x s hodnotou 'foo' .
  2. Nyní definujte $y , který se skládá z řetězce '$foo' . Znak dolaru musí být uvozen
    pomocí '$' .
  3. Chcete-li zkontrolovat výsledek, echo $y .
  4. Výsledkem bude řetězec '$foo'
  5. Nyní zopakujeme přiřazení s eval . Nejprve vyhodnotí $x na řetězec 'foo' . Nyní máme příkaz y=$foo který bude vyhodnocen jako y=10 .
  6. Výsledek echo $y je 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
  1. Rozdíl mezi operátory Bash [[ Vs [ Vs ( Vs ((?

  2. příkaz pro export bash

  3. Jak přidat ikonu do výzvy bash

  1. '&&' vs. '&' s příkazem 'test' v Bash

  2. Jak nastavit barvu příkazového řádku v Bash?

  3. Jak rychle změnit první slovo v příkazu Bash?

  1. Bash tipy pro každý den na příkazovém řádku

  2. eval příkaz v Bash a jeho typické použití

  3. Jaký je rozdíl mezi &> a >&v bash?