Re: bash-environment und lists und compound commands in bash: { list; }

Autor: Christian Weisgerber <naddy_at_mips.inka.de>
Datum: Tue, 24 Feb 2009 17:22:28 +0000 (UTC)
Raphael Becker <rabe_at_uugrn.org> wrote:

> $ env -i { echo foo; echo bar; }
> bash: syntax error near unexpected token `}'

Das ist ja auch völliger Unsinn. Die Zeile ist äquivalent zu

  env -i { echo foo
  echo bar
  }

'{' und '}' sind reservierte Wörter, die nur am Anfang eines Befehls
erkannt werden, wie z.B. "if" und "case". Im obigen Beispiel steht
ein einsames '}' in der Gegend, ohne öffnenden Partner, daher der
Syntax-Fehler.

> $ env -i { echo foo; echo bar }
> env: {: No such file or directory
> bar }

Das entspricht

  env -i { echo foo
  echo bar }

Kein Syntaxfehler, '{' und '}' sind einfach Argumente für die
jeweiligen Befehle. env(1) versucht einen externen Befehl '{'
auszuführen, den es natürlich nicht gibt.

> $ env -i "{ echo foo; echo bar; }"  
> env: { echo foo; echo bar; }: No such file or directory

env -i sh -c "{ echo foo; echo bar; }"

> Welche (fehlende?) Shellvariable steckt dahinter?

Du verstehst einfach nur die Shell-Syntax nicht.

-- 
Christian "naddy" Weisgerber                          naddy_at_mips.inka.de
--
http://mailman.uugrn.org/mailman/listinfo/uugrn
Wiki: http://wiki.uugrn.org/wiki/UUGRN:Mailingliste
Archiv: http://lists.uugrn.org/
Empfangen am 24.02.2009

Dieses Archiv wurde generiert von hypermail 2.2.0 : 24.02.2009 CET