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
Reply to: