Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 5 Jun 2016 13:49:32 -0400
From:      Baho Utot <baho-utot@columbus.rr.com>
To:        freebsd-questions@freebsd.org
Subject:   Re: sh[it] and What am I missing here?
Message-ID:  <5fd48d4e-0ca9-681b-83af-da18280f4979@columbus.rr.com>
In-Reply-To: <5754641A.8010508@gmail.com>
References:  <31b2cfb1-1da8-9262-3f03-d964776c905e@columbus.rr.com> <575453F9.9070508@holgerdanske.com> <4daed7a2-9a0b-15d9-0bb2-31227f8fcddd@columbus.rr.com> <5754641A.8010508@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 06/05/16 13:40, Ernie Luzar wrote:
> Baho Utot wrote:
>> On 06/05/16 12:31, David Christensen wrote:
>>> On 06/05/2016 08:38 AM, Baho Utot wrote:
>>> ...
>>>> root@baho-utot:~ # set
>>> ...
>>>> shell   /bin/csh
>>> ...
>>>> tcsh    6.18.01
>>> ...
>>>> OK tcsh as I thought
>>> ...
>>>> OK switch shells
>>>>
>>>> root@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
>
> I think your problem is where you are placing your script.
> You have to place your script in a path that is auto searched for 
> executable scripts.
>

./<filespec.sh> fixes that

> Place your script in /usr/local/bin on your development pc and on the 
> new installed os pc. Then just entering the script on the console 
> command line will cause it to execute.  BY the way your script doesn't 
> need to be suffixed with .sh to work.

It does need the suffix .sh because if it is missing I fail to 
function...... the computer does just fine.





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5fd48d4e-0ca9-681b-83af-da18280f4979>