From: Hans-Georg Bork <h...@hgbhome.net> To: bug-bash@gnu.org, b...@packages.debian.org Subject: Commands ran with $($prog) do not run properly
Configuration Information [Automatically generated, do not change]: Machine: x86_64 OS: linux-gnu Compiler: gcc Compilation CFLAGS: -DPROGRAM='bash' -DCONF_HOSTTYPE='x86_64' -DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='x86_64-pc-linux-gnu' -DCONF_VENDOR='pc' -DLOCALEDIR ='/usr/share/locale' -DPACKAGE='bash' -DSHELL -DHAVE_CONFIG_H -I. -I../bash -I../bash/include -I../bash/lib -g -O2 -Wall uname output: Linux linprofs-hgb 2.6.32-5-amd64 #1 SMP Wed Oct 20 00:05:22 UTC 2010 x86_64 GNU/Linux Machine Type: x86_64-pc-linux-gnu Bash Version: 4.1 Patch Level: 5 Release Status: release Description: Hi, if a program ist started with $($prog) the output is different from <command> or even $(<command>). Example with find (excluding a directory from search): $ ls -l /test total 16 drwxrwxr-x 2 hgb hgb 4096 Nov 6 02:14 a drwxrwxr-x 2 hgb hgb 4096 Nov 6 02:14 b drwxrwxr-x 2 hgb hgb 4096 Nov 6 02:14 c drwxrwxr-x 2 hgb hgb 4096 Nov 6 02:14 d $ find /test -type d ! -wholename "/test" /test/c /test/b /test/d /test/a $ echo "$(find /test -type d ! -wholename "/test")" /test/c /test/b /test/d /test/a $ prog='find /test -type d ! -wholename "/test"' $ echo $prog find /test -type d ! -wholename "/test" $ echo "$($prog)" /test /test/c /test/b /test/d /test/a $ As seen above /test ist shown when $prog is executed. I see the same behavior with GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu) (CentOS) GNU bash, version 3.2.39(1)-release (i486-pc-linux-gnu) (debian) I understand that the above looks crazy and not like a problem out of real life ... I had to use find to crawl through a huge tree and remove only a few files in it. I came across the above problem when feeding an array with the output of find; I fixed it for now by removing the unwanted entries from the output array. Thanks in advance for looking into this. Regards -- hgb