Web lists-archives.com

Re: Bash file to variable string problem -- must be simple. What am I missing?




Hi,

if spaces are involved, then quotation marks hould be put around the
argument of "echo".

Using the leading blank from David Wright's post:

  $ fname=" long file with spaces.mp4"
  $ x=`echo $fname | rev | cut -d. -f2 | rev`
  $ test "$x".mp4 = "$fname" && echo IS EQUAL
  $

I.e. "$x".mp4 and "$fname" are not equal.
That's because the leading blank got lost in the "echo" run:

  $ echo "'$x'"
  'long file with spaces'

Now with quotation marks around $fname to preserve the leading blank:

  $ x=`echo "$fname" | rev | cut -d. -f2 | rev`
  $ test "$x".mp4 = "$fname" && echo IS EQUAL
  IS EQUAL

A similar effect would happen with double blanks inside the name:

  $ fname="long file with  double  spaces.mp4"
  $ x=`echo $fname | rev | cut -d. -f2 | rev`
  $ echo "'$x'"
  'long file with double spaces'
  $ x=`echo "$fname" | rev | cut -d. -f2 | rev`
  $ echo "'$x'"
  'long file with  double  spaces'


Have a nice day :)

Thomas