sh[it] and What am I missing here?

Baho Utot baho-utot at columbus.rr.com
Sun Jun 5 17:15:28 UTC 2016


On 06/05/16 12:31, David Christensen wrote:
> On 06/05/2016 08:38 AM, Baho Utot wrote:
> ...
>> root at baho-utot:~ # set
> ...
>> shell   /bin/csh
> ...
>> tcsh    6.18.01
> ...
>> OK tcsh as I thought
> ...
>> OK switch shells
>>
>> root at baho-utot:~ # /bin/sh
>> # set
> ...
>> Why is the SHELL variable still set to /bin/csh
> ...
>
> Because you are invoking a program (/bin/sh) and that program did not 
> modify the SHELL environment variable.
>
>
> On 06/05/2016 09:15 AM, jd1008 wrote:
> > Do I understand correctly that you want bash to be your shell?
> > If so, you can run (as root), the command
> > chsh <username>
>
> +1
>
> Take a look at:
>
> https://www.freebsd.org/doc/en/articles/linux-users/shells.html
>
>
> David

I understood that, But I do not want to change the default shell.
I only want to create a script ( sh script ) and run if from a clean 
machine with just base install nothing else and then run my sh script to 
build some ports.  That's were the trouble lies.  ie functions not 
returning status for example:

test.sh
chmod +x test.sh

#!/bin/sh

func() {
     echo "Yep it's me"
     return 1
}

if [ func ] ; then                 # if [ 1 = func ] or if [ 1 -eq func 
] doesn't work either
     echo "This works"
fi

./test.sh

[: func: unexpected operator


More information about the freebsd-questions mailing list