If I use the 'cd' BASH built-in in a command substitution, it prints extra stuff to stdout, but only when piped to, eg., less.
$ echo `cd .` # The output is a single newline, appended by echo. $ echo `cd .` | less # less displays: ESC]2;my.hostname.com - tmp/testenv^G (END)
What's going on there? This behavior isn't documented in the bash man page for cd. Obviously, running just 'cd' in a command substitution is silly, but something like
NEWDIR=`cd mypath; pwd`
could be useful.
I solved this by instead using
NEWVAR=`cd mypath > /dev/null 2>&1; pwd`
but I still want to know what's going on.
Bash Version: GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu) Copyright (C) 2005 Free Software Foundation, Inc.
Distro: Scientific Linux SL release 5.5 (Boron)