why is this script failing?

Gary Kline kline at thought.org
Mon Jul 14 21:56:28 UTC 2008


On Mon, Jul 14, 2008 at 04:09:24PM -0500, David Kelly wrote:
> On Mon, Jul 14, 2008 at 01:12:47PM -0700, Gary Kline wrote:
> > 
> > 	why is this script not finding them?
> > 
> > 
> > wav=/tmp/kde-kline/\*wav\*
> > 
> > if [ -s $wav ]
> 
> As others have pointed out because if "/tmp/kde-kline/file1.wav
> /tmp/kde-kline/file2.wav" is found the -s will fail because $wav isn't a
> single file. Or it could be that your escaped wildcards are staying
> escaped.
> 
> I use something like this to move files out of a Maildir:
> 
> #!/bin/sh
> for i in /tmp/kde-kline/*wav
> do
> 	# if nothing or nonsense was found then $i won't exist
> 	if [ -e $i ]
> 	then
> 		echo "Found " $i
> 		/bin/rm $i
> 	fi
> done


	You're right of course, and for the most bothersome hundreds of
	wav and log files this works:


log=/tmp/kde-kline/\*log;
wav=/tmp/kde-kline/\*wav\*;

for f in $wav
do
        if [ -e $f  ]
        then
                ###echo "Wav files found"; ls -l $f;
                /bin/rm ${f};
        fi
done

for f in $log
do
        if [ -e $f  ]
        then
                ###echo "log files found"; ls -l $f;
                /bin/rm ${f};
        fi
done


	But as you point out, the followingisthat much more effective.
	or at least lesss typing.

> 
> But why do it the hard way?
> 
> #!/bin/sh
> /bin/rm /tmp/kde-kline/*wav > /dev/null 2>&1

	with this,
> 
> /bin/rm /tmp/kde-kline/*log > /dev/null 2>&1


	thanks much:-)

	gary


> -- 
> David Kelly N4HHE, dkelly at HiWAAY.net
> ========================================================================
> Whom computers would destroy, they must first drive mad.

-- 
  Gary Kline  kline at thought.org   www.thought.org  Public Service Unix
        http://jottings.thought.org   http://transfinite.thought.org




More information about the freebsd-questions mailing list