[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


Raphael Becker <rabe@xxxxxxxxx> wrote:

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

Das ist ja auch voelliger Unsinn. Die Zeile ist aequivalent zu

  env -i { echo foo
  echo bar
  }

'{' und '}' sind reservierte Woerter, die nur am Anfang eines Befehls
erkannt werden, wie z.B. "if" und "case". Im obigen Beispiel steht
ein einsames '}' in der Gegend, ohne oeffnenden 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 fuer die
jeweiligen Befehle. env(1) versucht einen externen Befehl '{'
auszufuehren, den es natuerlich 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@xxxxxxxxxxxx
--
http://mailman.uugrn.org/mailman/listinfo/uugrn
Wiki: http://wiki.uugrn.org/wiki/UUGRN:Mailingliste
Archiv: http://lists.uugrn.org/