sh[it] and What am I missing here?

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


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 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
>
> 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.




More information about the freebsd-questions mailing list