On  Mon, 10 Apr 2006 22:30:32 -0700  Garrett Cooper wrote (my brief response 
follows all of his text):

    Just making a series of sh scripts to help automate updating and 
whatnot of my fileserver (since I am trying to avoid having mistakes 
occur with my system, and maybe help the community out a bit by 
providing some decent means of updating their own machines), and I was 
wondering if anyone could help me out with the following script I've 
developing (the grep if statements are incorrect..):

#!/bin/sh
#

KC="";

cd /usr/src;

if [ -n `grep -e s/KERNCONF=/ /etc/make.conf` ] # want to look for 
KERNCONF in /etc/make.conf
then
        echo "enter in the kernel conf file full pathname:";
        read KERNCONF;
        KC="KERNCONF=$KERNCONF";
fi

if [ -n `grep -e s/NO_CLEAN=*yes*/ /etc/make.conf` ] // want to look for 
NO_CLEAN in /etc/make.conf -- is this really necessary?
then
        cd sys;
        echo "cleaning sources"
        make clean;
        make cleandir;
        cd ..;
fi

echo "building kernel";
make buildkernel $KC;

echo "installing kernel";
make installkernel $KC;

echo "kernel compile complete. reboot to try new kernel";

TIA,
-Garrett

I see a problem in the line
if [ -n `grep -e s/KERNCONF=/ /etc/make.conf` ] # want to look for 
you should have double-quotes around the  `grep  ...  conf`
because it is likely to produce more than one token and so the
 [ -n  ... ]  statement violates the syntax (there should be exactly 1 token 
between the  -n  and the  ] , even no token there is an error, the way that is 
handled is to quote it.
I am writing this quickly without bringing up my  FreeBSD  system to check it.  
Good luck.

Another thing you can do to avoid quoting (and the long strings that may 
result) is use the  -c  option of  grep  and check the number resulting.

_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to