sh[it] and What am I missing here?
RW
rwmaillists at googlemail.com
Sun Jun 5 23:01:17 UTC 2016
On Sun, 5 Jun 2016 13:15:25 -0400
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:
It doesn't work because the shell script is wrong. [ func ] doesn't
execute func. func and "]" are actually arguments to "[". Using
backticks around func executes it.
See man test for the rest.
$ cat /tmp/foo
#!/bin/sh
func() {
echo "Yep its me"
return 1
}
if ! func ; then
echo "This works"
fi
if [ "`func`" = "Yep its me" ] ; then
echo "This works too"
fi
if [ "`func`" ] ; then
echo "And this works also"
fi
$ /tmp/foo
Yep its me
This works
This works too
And this works also
> 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
> _______________________________________________
> freebsd-questions at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to
> "freebsd-questions-unsubscribe at freebsd.org"
More information about the freebsd-questions
mailing list