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.
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"