Subject: 24.2; Eshell ${cmd} substitution

From: Aidan Gauland <[email-masked]>
Date: Sat, 20 Oct 2012 21:06:41 +1300

In Eshell, ${cmd} expands to nil.
e.g.
$ echo ${/bin/echo -e "foo\nbar"}
$ 
Note the absence of any output from `echo'.

$ echo ${/bin/echo -e "foo\nbar"}-foo
nil-foo
n$ 

`*echo' prints expected output, but only for the first case.
$ echo ${/bin/echo -e "foo\nbar"}
foo
bar
$ 

$ echo ${/bin/echo -e "foo\nbar"}-foo
("foo" "bar")-foo
$ 

In GNU Emacs 24.2.1 (x86_64-pc-linux-gnu, GTK+ Version 2.24.10)
 of 2012-09-10 on trouble, modified by Debian
Windowing system distributor `The X.Org Foundation', version 11.0.11203902
Configured using:
 `configure '--build' 'x86_64-linux-gnu' '--build' 'x86_64-linux-gnu'
 '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib'
 '--localstatedir=/var/lib' '--infodir=/usr/share/info'
 '--mandir=/usr/share/man' '--with-pop=yes'
 '--enable-locallisppath=/etc/emacs24:/etc/emacs:/usr/local/share/emacs/24.2/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.2/site-lisp:/usr/share/emacs/site-lisp'
 '--with-crt-dir=/usr/lib/x86_64-linux-gnu' '--with-x=yes'
 '--with-x-toolkit=gtk' '--with-toolkit-scroll-bars'
 'build_alias=x86_64-linux-gnu' 'CFLAGS=-g -O2 -fstack-protector
 --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall'
 'CPPFLAGS=-D_FORTIFY_SOURCE=2''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_NZ.utf8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: EShell

Minor modes in effect:
  tooltip-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
M-x e s h <tab> <return> e c h o SPC $ { / b i n / 
e c h o M-b C-e SPC } <backspace> - e SPC " f o o <return> 
<backspace> \ n b a r " } <return> M-p - f o o <return> 
M-p C-a * <return> M-p <M-backspace> <backspace> <return> 
M-x r e p o r t <tab> <return>

Recent messages:
Loading em-dirs...done
Loading em-glob...done
Loading em-hist...done
Loading em-ls...done
Loading em-prompt...done
Loading em-script...done
Loading em-term...done
Loading em-unix...done
Expecting completion of delimiter { ...
History item: 128 [3 times]

Load-path shadows:
/usr/share/emacs/24.2/site-lisp/debian-startup hides /usr/share/emacs/site-lisp/debian-startup
/usr/share/emacs/24.2/site-lisp/dictionaries-common/flyspell hides /usr/share/emacs/24.2/lisp/textmodes/flyspell
/usr/share/emacs/24.2/site-lisp/dictionaries-common/ispell hides /usr/share/emacs/24.2/lisp/textmodes/ispell
/usr/local/share/emacs/site-lisp/org-freemind hides /usr/share/emacs/24.2/lisp/org/org-freemind
/usr/local/share/emacs/site-lisp/ob-octave hides /usr/share/emacs/24.2/lisp/org/ob-octave
/usr/local/share/emacs/site-lisp/ob-comint hides /usr/share/emacs/24.2/lisp/org/ob-comint
/usr/local/share/emacs/site-lisp/org-id hides /usr/share/emacs/24.2/lisp/org/org-id
/usr/local/share/emacs/site-lisp/org-timer hides /usr/share/emacs/24.2/lisp/org/org-timer
/usr/local/share/emacs/site-lisp/org-agenda hides /usr/share/emacs/24.2/lisp/org/org-agenda
/usr/local/share/emacs/site-lisp/org-vm hides /usr/share/emacs/24.2/lisp/org/org-vm
/usr/local/share/emacs/site-lisp/org-list hides /usr/share/emacs/24.2/lisp/org/org-list
/usr/local/share/emacs/site-lisp/ob-haskell hides /usr/share/emacs/24.2/lisp/org/ob-haskell
/usr/local/share/emacs/site-lisp/ob-lisp hides /usr/share/emacs/24.2/lisp/org/ob-lisp
/usr/local/share/emacs/site-lisp/org-mhe hides /usr/share/emacs/24.2/lisp/org/org-mhe
/usr/local/share/emacs/site-lisp/ob-ocaml hides /usr/share/emacs/24.2/lisp/org/ob-ocaml
/usr/local/share/emacs/site-lisp/org-xoxo hides /usr/share/emacs/24.2/lisp/org/org-xoxo
/usr/local/share/emacs/site-lisp/ob-calc hides /usr/share/emacs/24.2/lisp/org/ob-calc
/usr/local/share/emacs/site-lisp/org-rmail hides /usr/share/emacs/24.2/lisp/org/org-rmail
/usr/local/share/emacs/site-lisp/org-taskjuggler hides /usr/share/emacs/24.2/lisp/org/org-taskjuggler
/usr/local/share/emacs/site-lisp/org-mks hides /usr/share/emacs/24.2/lisp/org/org-mks
/usr/local/share/emacs/site-lisp/org-archive hides /usr/share/emacs/24.2/lisp/org/org-archive
/usr/local/share/emacs/site-lisp/org-bbdb hides /usr/share/emacs/24.2/lisp/org/org-bbdb
/usr/local/share/emacs/site-lisp/ob-eval hides /usr/share/emacs/24.2/lisp/org/ob-eval
/usr/local/share/emacs/site-lisp/org hides /usr/share/emacs/24.2/lisp/org/org
/usr/local/share/emacs/site-lisp/org-table hides /usr/share/emacs/24.2/lisp/org/org-table
/usr/local/share/emacs/site-lisp/org-docbook hides /usr/share/emacs/24.2/lisp/org/org-docbook
/usr/local/share/emacs/site-lisp/ob-exp hides /usr/share/emacs/24.2/lisp/org/ob-exp
/usr/local/share/emacs/site-lisp/ob-C hides /usr/share/emacs/24.2/lisp/org/ob-C
/usr/local/share/emacs/site-lisp/org-irc hides /usr/share/emacs/24.2/lisp/org/org-irc
/usr/local/share/emacs/site-lisp/org-footnote hides /usr/share/emacs/24.2/lisp/org/org-footnote
/usr/local/share/emacs/site-lisp/org-jsinfo hides /usr/share/emacs/24.2/lisp/org/org-jsinfo
/usr/local/share/emacs/site-lisp/org-bibtex hides /usr/share/emacs/24.2/lisp/org/org-bibtex
/usr/local/share/emacs/site-lisp/ob-perl hides /usr/share/emacs/24.2/lisp/org/ob-perl
/usr/local/share/emacs/site-lisp/org-publish hides /usr/share/emacs/24.2/lisp/org/org-publish
/usr/local/share/emacs/site-lisp/org-exp-blocks hides /usr/share/emacs/24.2/lisp/org/org-exp-blocks
/usr/local/share/emacs/site-lisp/ob-java hides /usr/share/emacs/24.2/lisp/org/ob-java
/usr/local/share/emacs/site-lisp/ob-table hides /usr/share/emacs/24.2/lisp/org/ob-table
/usr/local/share/emacs/site-lisp/ob-scheme hides /usr/share/emacs/24.2/lisp/org/ob-scheme
/usr/local/share/emacs/site-lisp/org-install hides /usr/share/emacs/24.2/lisp/org/org-install
/usr/local/share/emacs/site-lisp/ob-latex hides /usr/share/emacs/24.2/lisp/org/ob-latex
/usr/local/share/emacs/site-lisp/org-special-blocks hides /usr/share/emacs/24.2/lisp/org/org-special-blocks
/usr/local/share/emacs/site-lisp/ob-mscgen hides /usr/share/emacs/24.2/lisp/org/ob-mscgen
/usr/local/share/emacs/site-lisp/org-gnus hides /usr/share/emacs/24.2/lisp/org/org-gnus
/usr/local/share/emacs/site-lisp/org-beamer hides /usr/share/emacs/24.2/lisp/org/org-beamer
/usr/local/share/emacs/site-lisp/ob-sass hides /usr/share/emacs/24.2/lisp/org/ob-sass
/usr/local/share/emacs/site-lisp/org-datetree hides /usr/share/emacs/24.2/lisp/org/org-datetree
/usr/local/share/emacs/site-lisp/org-src hides /usr/share/emacs/24.2/lisp/org/org-src
/usr/local/share/emacs/site-lisp/org-mouse hides /usr/share/emacs/24.2/lisp/org/org-mouse
/usr/local/share/emacs/site-lisp/org-entities hides /usr/share/emacs/24.2/lisp/org/org-entities
/usr/local/share/emacs/site-lisp/org-odt hides /usr/share/emacs/24.2/lisp/org/org-odt
/usr/local/share/emacs/site-lisp/org-plot hides /usr/share/emacs/24.2/lisp/org/org-plot
/usr/local/share/emacs/site-lisp/org-eshell hides /usr/share/emacs/24.2/lisp/org/org-eshell
/usr/local/share/emacs/site-lisp/org-latex hides /usr/share/emacs/24.2/lisp/org/org-latex
/usr/local/share/emacs/site-lisp/ob-sql hides /usr/share/emacs/24.2/lisp/org/ob-sql
/usr/local/share/emacs/site-lisp/ob-ref hides /usr/share/emacs/24.2/lisp/org/ob-ref
/usr/local/share/emacs/site-lisp/ob-js hides /usr/share/emacs/24.2/lisp/org/ob-js
/usr/local/share/emacs/site-lisp/ob-gnuplot hides /usr/share/emacs/24.2/lisp/org/ob-gnuplot
/usr/local/share/emacs/site-lisp/org-remember hides /usr/share/emacs/24.2/lisp/org/org-remember
/usr/local/share/emacs/site-lisp/org-protocol hides /usr/share/emacs/24.2/lisp/org/org-protocol
/usr/local/share/emacs/site-lisp/ob-shen hides /usr/share/emacs/24.2/lisp/org/ob-shen
/usr/local/share/emacs/site-lisp/org-macs hides /usr/share/emacs/24.2/lisp/org/org-macs
/usr/local/share/emacs/site-lisp/ob-plantuml hides /usr/share/emacs/24.2/lisp/org/ob-plantuml
/usr/local/share/emacs/site-lisp/org-exp hides /usr/share/emacs/24.2/lisp/org/org-exp
/usr/local/share/emacs/site-lisp/ob-R hides /usr/share/emacs/24.2/lisp/org/ob-R
/usr/local/share/emacs/site-lisp/ob-sh hides /usr/share/emacs/24.2/lisp/org/ob-sh
/usr/local/share/emacs/site-lisp/org-capture hides /usr/share/emacs/24.2/lisp/org/org-capture
/usr/local/share/emacs/site-lisp/org-colview hides /usr/share/emacs/24.2/lisp/org/org-colview
/usr/local/share/emacs/site-lisp/org-clock hides /usr/share/emacs/24.2/lisp/org/org-clock
/usr/local/share/emacs/site-lisp/org-info hides /usr/share/emacs/24.2/lisp/org/org-info
/usr/local/share/emacs/site-lisp/org-ascii hides /usr/share/emacs/24.2/lisp/org/org-ascii
/usr/local/share/emacs/site-lisp/org-ctags hides /usr/share/emacs/24.2/lisp/org/org-ctags
/usr/local/share/emacs/site-lisp/ob-maxima hides /usr/share/emacs/24.2/lisp/org/ob-maxima
/usr/local/share/emacs/site-lisp/org-inlinetask hides /usr/share/emacs/24.2/lisp/org/org-inlinetask
/usr/local/share/emacs/site-lisp/ob-emacs-lisp hides /usr/share/emacs/24.2/lisp/org/ob-emacs-lisp
/usr/local/share/emacs/site-lisp/ob-python hides /usr/share/emacs/24.2/lisp/org/ob-python
/usr/local/share/emacs/site-lisp/org-lparse hides /usr/share/emacs/24.2/lisp/org/org-lparse
/usr/local/share/emacs/site-lisp/org-compat hides /usr/share/emacs/24.2/lisp/org/org-compat
/usr/local/share/emacs/site-lisp/org-docview hides /usr/share/emacs/24.2/lisp/org/org-docview
/usr/local/share/emacs/site-lisp/ob-dot hides /usr/share/emacs/24.2/lisp/org/ob-dot
/usr/local/share/emacs/site-lisp/org-feed hides /usr/share/emacs/24.2/lisp/org/org-feed
/usr/local/share/emacs/site-lisp/ob-keys hides /usr/share/emacs/24.2/lisp/org/ob-keys
/usr/local/share/emacs/site-lisp/org-mac-message hides /usr/share/emacs/24.2/lisp/org/org-mac-message
/usr/local/share/emacs/site-lisp/org-attach hides /usr/share/emacs/24.2/lisp/org/org-attach
/usr/local/share/emacs/site-lisp/org-mew hides /usr/share/emacs/24.2/lisp/org/org-mew
/usr/local/share/emacs/site-lisp/ob-ditaa hides /usr/share/emacs/24.2/lisp/org/ob-ditaa
/usr/local/share/emacs/site-lisp/ob-asymptote hides /usr/share/emacs/24.2/lisp/org/ob-asymptote
/usr/local/share/emacs/site-lisp/org-crypt hides /usr/share/emacs/24.2/lisp/org/org-crypt
/usr/local/share/emacs/site-lisp/ob-sqlite hides /usr/share/emacs/24.2/lisp/org/ob-sqlite
/usr/local/share/emacs/site-lisp/org-mobile hides /usr/share/emacs/24.2/lisp/org/org-mobile
/usr/local/share/emacs/site-lisp/ob-matlab hides /usr/share/emacs/24.2/lisp/org/ob-matlab
/usr/local/share/emacs/site-lisp/org-faces hides /usr/share/emacs/24.2/lisp/org/org-faces
/usr/local/share/emacs/site-lisp/ob-fortran hides /usr/share/emacs/24.2/lisp/org/ob-fortran
/usr/local/share/emacs/site-lisp/ob-ruby hides /usr/share/emacs/24.2/lisp/org/ob-ruby
/usr/local/share/emacs/site-lisp/ob-clojure hides /usr/share/emacs/24.2/lisp/org/ob-clojure
/usr/local/share/emacs/site-lisp/org-w3m hides /usr/share/emacs/24.2/lisp/org/org-w3m
/usr/local/share/emacs/site-lisp/ob-tangle hides /usr/share/emacs/24.2/lisp/org/ob-tangle
/usr/local/share/emacs/site-lisp/ob-screen hides /usr/share/emacs/24.2/lisp/org/ob-screen
/usr/local/share/emacs/site-lisp/ob-picolisp hides /usr/share/emacs/24.2/lisp/org/ob-picolisp
/usr/local/share/emacs/site-lisp/org-pcomplete hides /usr/share/emacs/24.2/lisp/org/org-pcomplete
/usr/local/share/emacs/site-lisp/ob-css hides /usr/share/emacs/24.2/lisp/org/ob-css
/usr/local/share/emacs/site-lisp/org-icalendar hides /usr/share/emacs/24.2/lisp/org/org-icalendar
/usr/local/share/emacs/site-lisp/org-indent hides /usr/share/emacs/24.2/lisp/org/org-indent
/usr/local/share/emacs/site-lisp/org-habit hides /usr/share/emacs/24.2/lisp/org/org-habit
/usr/local/share/emacs/site-lisp/ob hides /usr/share/emacs/24.2/lisp/org/ob
/usr/local/share/emacs/site-lisp/ob-ledger hides /usr/share/emacs/24.2/lisp/org/ob-ledger
/usr/local/share/emacs/site-lisp/org-html hides /usr/share/emacs/24.2/lisp/org/org-html
/usr/local/share/emacs/site-lisp/ob-org hides /usr/share/emacs/24.2/lisp/org/ob-org
/usr/local/share/emacs/site-lisp/ob-awk hides /usr/share/emacs/24.2/lisp/org/ob-awk
/usr/local/share/emacs/site-lisp/ob-lilypond hides /usr/share/emacs/24.2/lisp/org/ob-lilypond
/usr/local/share/emacs/site-lisp/org-wl hides /usr/share/emacs/24.2/lisp/org/org-wl
/usr/local/share/emacs/site-lisp/ob-lob hides /usr/share/emacs/24.2/lisp/org/ob-lob

Features:
(shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml
easymenu mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util mail-prsvr mail-utils pp em-unix pcomplete comint regexp-opt
ansi-color em-term term disp-table ehelp electric em-script em-prompt
em-ls em-hist em-pred em-glob em-dirs em-cmpl em-basic esh-opt em-banner
em-alias ring esh-var esh-io esh-cmd esh-ext esh-proc esh-arg eldoc
help-fns esh-groups eshell esh-module esh-mode esh-util time-date
tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar
dnd fontset image fringe lisp-mode register page menu-bar rfn-eshadow
timer select scroll-bar mouse jit-lock font-lock syntax facemenu
font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan
thai tai-viet lao korean japanese hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer loaddefs button faces
cus-face files text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget hashtable-print-readable backquote
make-network-process dbusbind dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs)