i have a file output.txt which contains a single line with a list of files with quotes :
"file1.ext" "file2.ext" "file3.ext"
In a shell script, I want to retrieve the line and use it as a variable in a command like :
zip archive.zip $LIST
I cant get it work. When I physically type the command zip archive.zip "file1.ext" "file2.ext" "file3.ext", it works just fine but when I try to use a string variable I get an error.
When you type it on the command line, the double quotes are not passed to zip. If you are using a script (show it!) then if it is passing in the quotes so that zip sees them, stop doing that.
If you have control over the thing which generates the output file, make it use a less zany format. See how xargs does it; that's probably a good model for you.
open the file and remove the quotes if you have no control over the file format. Then split the fields on the spaces to create a list of files to feed to the zip function.
Post your current code (or just the relevant part) for more help.
It is the output of a xslt processing so I do have control on it. I can generate a file which looks like this, without quotes and my script works perfectly :
Or if you have the option, make it one file per line (and worry about file names with newlines in them instead ...).
xargs has an option to use a null (ASCII 0x00) terminator for that particular case. (Nulls and slashes are the only two characters which are disallowed in directory entry names.)