Web lists-archives.com

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





This has to be simple and I'm just missing it.

If I pull a filename from a temp file into a variable, I can ls it fine.

If I cut off the extension, and tack on my own SAME EXT, ls no longer works.

(The actual script is more elaborate, loading vlc , etc -- but this summarizes & shows my issue)


# mp4file.txt holds just 'long file with spaces.mp4'


fname=$(<mp4file.txt)

# echo $fname shows the right filename.mp4 string

# works
ls -al "$fname"


# Cut off the extension.
fname=`echo $fname | rev | cut -d. -f2 | rev`

# echo $fname shows the filename sans '.mp4'


# THIS LS FAILS, WITH FILE NOT FOUND (but actually reports the exact string that worked above, but not being found here).

ls -al "$fname".mp4

ls: cannot access 'long file with spaces.mp4': No such file or directory

------------------------------------------------------


It is not:

* a special character thing,

* a carriage return thing,

* a character case thing,

* not helped with './' or '~/' added in front of the filename.

* It's the same string in both spots.


Any thoughts folks?

Thanks