Date: Tue, 12 Feb 2013 12:41:48 -0600 From: Tim Daneliuk <tundra@tundraware.com> To: FreeBSD Mailing List <freebsd-questions@freebsd.org> Subject: Re: Was I Sourced? Message-ID: <511A8CEC.3060007@tundraware.com> In-Reply-To: <201302121710.r1CHAlNh028236@mail.r-bonomi.com> References: <201302121710.r1CHAlNh028236@mail.r-bonomi.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 02/12/2013 11:10 AM, Robert Bonomi wrote: >> Date: Tue, 12 Feb 2013 08:53:37 -0600 >> From: Tim Daneliuk <tundra@tundraware.com> >> To: FreeBSD Mailing List <freebsd-questions@freebsd.org> >> Subject: Was I Sourced? >> >> Is there a way for script to determine whether is was sourced >> or forked off as a subprocess when it was invoked? >> >> I have a script that needs to be sourced to work properly and >> I want to warn the luser if they exec or subshell it instead. > > a 'sourced' script does -not- honor a shebag line. > you can exploit that. > > The executable script /usr/local/bin/source_only; > #!/bin/sh > echo Error: this script must be sourced > > Your script: > #!/usr/local/bin/source_only > > {cmd} > {cmd} > {cmd} > {cmd} > {cmd} > {cmd} > ... > ... > > Trying to do it totally self-contained is not easy. > > Actually, it's not that hard. Setting the shebang line to this does the trick: #!/bin/echo "This Script Must Be Sourced!!!!" Thanks to all who replied on this one ... -- ----------------------------------------------------------------------- Tim Daneliuk
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?511A8CEC.3060007>