On Thu, 16 May 2019, Jerry Geis wrote:
I have a simple bash script it will take arguments from a file that has
quotes.
my file arg.txt would be this
-lt "*.txt"
my script file would be
LS_ARG=`cat arg.txt`
ls $LS_ARG
it does not run properly:
sh -x ./arg.sh
++ cat arg.txt
+ LS_ARG='-lt "*.txt"'
+ ls -lt '"*.txt"'
ls: cannot access "*.txt": No such file or directory
How do I resolve that ? If the quotes are not in my file it all works
fine. I think its because it looks like the extra single quotes it puts
around the "*.txt" - or - '"*.txt"' - how do I do this ? This is just a
short example of my larger need.
In general, shell utilities won't expand a wildcard within quotes
(double or single). As I think you've discovered, this works fine:
echo '-lt *.txt' > argfile
ls $(< argfile)
I think you're going to need to provide a test case where the quotes
are actually required.
--
Paul Heinlein
heinlein@xxxxxxxxxx
45°38' N, 122°6' W
_______________________________________________
CentOS mailing list
CentOS@xxxxxxxxxx
https://lists.centos.org/mailman/listinfo/centos