Date: Fri, 28 Oct 2016 09:34:26 +0100 From: Arthur Chance <freebsd@qeng-ho.org> To: Tim Daneliuk <tundra@tundraware.com> Cc: FreeBSD-Questions <freebsd-questions@freebsd.org> Subject: Re: Interesting $0 Problem Message-ID: <516bc76f-f14c-e9a5-a246-2e915a5369ce@qeng-ho.org> In-Reply-To: <b859f7a3-51d1-06f4-e793-332edd212068@tundraware.com> References: <b859f7a3-51d1-06f4-e793-332edd212068@tundraware.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 28/10/2016 02:30, Tim Daneliuk wrote: > I was fidding with some shell code today and discovered it was breaking > because $0 was returning "-/usr/local/bin/bash". Why is there a leading > dash here? I've not seen that before. > This is from "man sh" in the "Invocation" section but presumably bash is mimicking the standard behaviour. > When first starting, the shell inspects argument 0, and if it begins > with a dash (‘-’), the shell is also considered a login shell. This > is normally done automatically by the system when the user first > logs in. And in the source code for /usr/bin/login /* * Login shells have a leading '-' in front of argv[0] */ Prepending a dash to a login shell has been standard behaviour since the BSD days at least. I think it was in version 6 of the original Bell Labs Unix as well, but after three and a half decades my memories for such details are a bit hazy. Anyway, it's a standard marker. -- Schrödinger's cat had 18 half lives.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?516bc76f-f14c-e9a5-a246-2e915a5369ce>