Re: [gentoo-user] OT - Question about new bash [SOLVED]

2006-01-30 Thread znx
On 29/01/06, Norberto Bensa [EMAIL PROTECTED] wrote:
Perhaps you got some file named: hey I am a long file name with spaces.jpg ;)

No it can't be that, see the for before hand, that will separate at
whitespace by default (unless you tamper with IFS), so the variable
tested will be without whitespace, I can only guess its a charset or
similar that is causing the issue.

Anyway, good to see that it sorted it, point for the future, quote your variables in [ ] 's :)

z


Re: [gentoo-user] OT - Question about new bash [SOLVED]

2006-01-30 Thread Alexander Skwar
znx wrote:

 No it can't be that, see the for before hand, that will separate at
 whitespace by default

No, it won't. Try it.

 (unless you tamper with IFS), so the variable
 tested will be without whitespace,

No, it won't.


 I can only guess its a charset or
 similar that is causing the issue.

I rather suppose, that he has filenames with spaces.

 Anyway, good to see that it sorted it, point for the future, quote your
 variables in [ ] 's :)

Of course - ever and always quote variables, unless you can be
totally certain about the contents.

Alexander Skwar
-- 
You're gonna have to answer to the Coca-Cola company.
-- Colonel Bat Guano, Dr. Strangelove or: How I Learned to
   Stop Worrying and Love the Bomb
-- 
gentoo-user@gentoo.org mailing list



Re: [gentoo-user] OT - Question about new bash [SOLVED]

2006-01-30 Thread znx
First off.. OH!
On 30/01/06, Alexander Skwar [EMAIL PROTECTED] wrote:
znx wrote: No it can't be that, see the for before hand, that will separate at whitespace by defaultNo, it won't. Try it.
True, ok so it did? and not now with bash3, I presume this is why it worked before and doesn't now?
 (unless you tamper with IFS), so the variable tested will be without whitespace,
No, it won't.
See above! 
 I can only guess its a charset or similar that is causing the issue.
I rather suppose, that he has filenames with spaces.
Absolutely! 
 Anyway, good to see that it sorted it, point for the future, quote your variables in [ ] 's :)
Of course - ever and always quote variables, unless you can betotally certain about the contents.
:P 
Alexander Skwar
My apologies Alexander, I shall move my head into a bucket now for around 4 days.

Thanks 



[gentoo-user] OT - Question about new bash

2006-01-29 Thread Michael Sullivan
I wrote a script a long time ago for resizing pictures uploaded to a
certain directory on my server box.  The script was supposed to check to
see if any JPG files in the directory had not been resized, and if they
hadn't, it was supposed to resize them.  It did some other stuff, but
that was the important thing.  It worked fine until the recent bash
upgrade and now it gives me an error.  Here is the script:

[EMAIL PROTECTED] ~ $ cat system/resizepics
#!/bin/bash
OLD_DIR=$PWD
cd /home/michael/unfiledPics

if [ ! -d current ]; then
   mkdir -p current/mini
fi

if [ ! `ls -l | wc -l` -le 2 ]; then
   for x in *.JPG; do
  if [ ! -e current/$x ]; then
 convert $x -thumbnail 200x200 -verbose current/mini/mini-$x
 convert $x -thumbnail 640x480 -verbose current/$x;
  fi
   done
fi


if [ `ls -l | wc -l` -ge 12 ]; then
   today=`date '+%m%d%y'`
   mv current $today
   mv $today /home/michael/webspace/html/camera
   mkdir -p /home/michael/unfiledPics/current/mini
   rm /home/michael/unfiledPics/*.JPG
fi

cd $OLD_DIR

As I said, before the bash upgrade this worked perfectly.  Now, when I
try to run it, I get this:

[EMAIL PROTECTED] ~ $ system/resizepics
system/resizepics: line 11: [: too many arguments
system/resizepics: line 11: [: too many arguments


The error is printed twice because there are two .JPG being checked, but
I'm not sure why the error is occurring in the first place.  Line 11
says:

if [ ! -e current/$x ]; then

This used to mean if a file named current/whatever $x is does not
exist, then execute the following block, but it keeps tripping on this
line.  Was the -e switch deprecated or something?  What should it be?
If it matters, my /bin/bash version is

[EMAIL PROTECTED] ~ $ bash --version
GNU bash, version 3.00.16(1)-release (i586-pc-linux-gnu)
Copyright (C) 2004 Free Software Foundation, Inc.

Please help!


-- 
gentoo-user@gentoo.org mailing list



Re: [gentoo-user] OT - Question about new bash

2006-01-29 Thread fire-eyes
Michael Sullivan wrote:
 I wrote a script a long time ago for resizing pictures uploaded to a
 certain directory on my server box.  The script was supposed to check to
 see if any JPG files in the directory had not been resized, and if they
 hadn't, it was supposed to resize them.  It did some other stuff, but
 that was the important thing.  It worked fine until the recent bash
 upgrade and now it gives me an error.  Here is the script:
 
 [EMAIL PROTECTED] ~ $ cat system/resizepics
 #!/bin/bash
 OLD_DIR=$PWD
 cd /home/michael/unfiledPics
 
 if [ ! -d current ]; then
mkdir -p current/mini
 fi
 
 if [ ! `ls -l | wc -l` -le 2 ]; then
for x in *.JPG; do
   if [ ! -e current/$x ]; then
  convert $x -thumbnail 200x200 -verbose current/mini/mini-$x
  convert $x -thumbnail 640x480 -verbose current/$x;
   fi
done
 fi
 
 
 if [ `ls -l | wc -l` -ge 12 ]; then
today=`date '+%m%d%y'`
mv current $today
mv $today /home/michael/webspace/html/camera
mkdir -p /home/michael/unfiledPics/current/mini
rm /home/michael/unfiledPics/*.JPG
 fi
 
 cd $OLD_DIR
 
 As I said, before the bash upgrade this worked perfectly.  Now, when I
 try to run it, I get this:
 
 [EMAIL PROTECTED] ~ $ system/resizepics
 system/resizepics: line 11: [: too many arguments
 system/resizepics: line 11: [: too many arguments
 
 
 The error is printed twice because there are two .JPG being checked, but
 I'm not sure why the error is occurring in the first place.  Line 11
 says:
 
 if [ ! -e current/$x ]; then
 
 This used to mean if a file named current/whatever $x is does not
 exist, then execute the following block, but it keeps tripping on this
 line.  Was the -e switch deprecated or something?  What should it be?
 If it matters, my /bin/bash version is
 
 [EMAIL PROTECTED] ~ $ bash --version
 GNU bash, version 3.00.16(1)-release (i586-pc-linux-gnu)
 Copyright (C) 2004 Free Software Foundation, Inc.
 
 Please help!

I'm not sure myself, but a better place to ask might be freenode's #bash

;)

Good luck

-- 
gentoo-user@gentoo.org mailing list



Re: [gentoo-user] OT - Question about new bash

2006-01-29 Thread znx
Hi,

 for x in *.JPG; doif [ ! -e current/$x ]; then
I can't see anything wrong with this in particular, one thing that springs to mind is to quote the string that you are testing:

for x in *.JPG; do
 if [ ! -e current/$x ]; then

Hope that helps



Re: [gentoo-user] OT - Question about new bash [SOLVED]

2006-01-29 Thread Michael Sullivan
On Sun, 2006-01-29 at 18:05 +, znx wrote:
 Hi,
 
for x in *.JPG; do
   if [ ! -e current/$x ]; then
 
 I can't see anything wrong with this in particular, one thing that
 springs to mind is to quote the string that you are testing:
 
 for x in *.JPG; do
   if [ ! -e current/$x ]; then
 
 Hope that helps
 

Yep, that worked!  Thanks!  Hmm, I wonder why it worked before?


-- 
gentoo-user@gentoo.org mailing list



Re: [gentoo-user] OT - Question about new bash

2006-01-29 Thread Alexander Skwar
Michael Sullivan wrote:

 As I said, before the bash upgrade this worked perfectly.  Now, when I
 try to run it, I get this:
 
 [EMAIL PROTECTED] ~ $ system/resizepics
 system/resizepics: line 11: [: too many arguments
 system/resizepics: line 11: [: too many arguments

I don't get this error, when I run your script. How
are the files named? Do they have spaces in the file
name? If so - and even if not - I'd *STRONGLY* suggest
to enclose current/$x in quotes, like so:

if [ ! -e current/$x ]; then

Alexander Skwar
-- 
R Tape loading error, 0:1
-- 
gentoo-user@gentoo.org mailing list



Re: [gentoo-user] OT - Question about new bash [SOLVED]

2006-01-29 Thread Norberto Bensa
Michael Sullivan wrote:
  for x in *.JPG; do
if [ ! -e current/$x ]; then
 
  Hope that helps

 Yep, that worked!  Thanks!  Hmm, I wonder why it worked before?

Perhaps you got some file named: hey I am a long file name with spaces.jpg ;)

-- 
Norberto Bensa
Ciudad de Buenos Aires, Argentina
-- 
gentoo-user@gentoo.org mailing list