From: Robin H. Johnson Date: Tue, 04 Jan 2011 20:35:38 GMT Subject: Re: [PATCH v2] Fix false positives in t3404 due to SHELL=/bin/false Message-ID: In-Reply-To: <982E526FA742C94E9AC26DA766FD07090A3399@NYCMBX3.winmail.deshaw.com> On Tue, Jan 04, 2011 at 09:43:12AM -0500, Vallon, Justin wrote: > # "exec" commands are ran with the user shell by default, but this may > # be non-POSIX. For example, if SHELL=zsh then ">file" doesn't work > # to create a file. Unseting SHELL avoids such non-portable behavior > > Perl's exec and system do not use SHELL (as far as perlfunc states). It uses > /bin/sh -c "$cmd", or a platform-dependent equivalent. > > $SHELL is typically only used when a program wants to invoke a user-shell > (ie: editor shell-escape, xterm, typescript, screen). > > How was SHELL=/bin/false causing problems? Is git using $SHELL? git-rebase--interactive.sh: ==== ${SHELL:-@SHELL_PATH@} -c "$rest" # Actual execution status=$? if test "$status" -ne 0 then warn "Execution failed: $rest" ==== This always triggers with SHELL=/bin/false if SHELL is unset or empty, SHELL_PATH gets substituted, which tends to be the correct /bin/sh. -- Robin Hugh Johnson Gentoo Linux: Developer, Trustee & Infrastructure Lead E-Mail : robbat2@gentoo.org GnuPG FP : 11AC BA4F 4778 E3F6 E4ED F38E B27B 944E 3488 4E85