On my CentOS 4.6 server, this works... if [ -z `grep entry_chooser.js /var/log/httpd/access_log` ] On my CentOS 5.1 server, this gives me the following error... ./test_file.scr: line 3: [: too many arguments Can anyone explain why the difference and suggest something that makes both cases happy? Thanks Craig
Craig White wrote:> On my CentOS 4.6 server, this works... > > if [ -z `grep entry_chooser.js /var/log/httpd/access_log` ] > > On my CentOS 5.1 server, this gives me the following error... > > ./test_file.scr: line 3: [: too many arguments > > Can anyone explain why the difference and suggest something that makes > both cases happy? > > Thanks > > Craig > > _______________________________________________ > CentOS mailing list > CentOS at centos.org > http://lists.centos.org/mailman/listinfo/centos > >Not sure why 4.6 is allowing it, but your if test will be resolving to something like this:- if [ -z this line from your log file and another line and even more lines until your if test fails with too many arguments I hope you don't want me to keep typing to make the point ] To fix it, wrap the grep instead double quotes as well as the ticks - e.g. if [ -z "`grep entry_chooser.js /var/log/httpd/access_log`" ] Then the output from the grep will be seen as one long string, not a multitude of words from your log file. Ian -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/x-pkcs7-signature Size: 3617 bytes Desc: S/MIME Cryptographic Signature URL: <http://lists.centos.org/pipermail/centos/attachments/20080516/7d6ecfea/attachment-0005.bin>
On Fri, 2008-05-16 at 14:07 +0930, Ian Blackwell wrote:> Craig White wrote: > > On my CentOS 4.6 server, this works... > > > > if [ -z `grep entry_chooser.js /var/log/httpd/access_log` ] > > > > On my CentOS 5.1 server, this gives me the following error... > > > > ./test_file.scr: line 3: [: too many arguments > > > > Can anyone explain why the difference and suggest something that makes > > both cases happy? > > > Not sure why 4.6 is allowing it, but your if test will be resolving to > something like this:- > if [ -z this line from your log file and another line and even more > lines until your if test fails with too many arguments I hope you don't > want me to keep typing to make the point ] > > To fix it, wrap the grep instead double quotes as well as the ticks - e.g. > if [ -z "`grep entry_chooser.js /var/log/httpd/access_log`" ] > Then the output from the grep will be seen as one long string, not a > multitude of words from your log file.---- That works fine one CentOS 5 (double quotes and backtics) but not on CentOS 4.6 Thanks...I guess it's good enough for now. Craig