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>