KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Autoconf scripts have trouble with a filename or pathname with spaces. For example, ./configure CPPFLAGS="-I\"/path with space\"" results in (config.log): configure:3012: gcc -I"/path with space" conftest.c >&5 gcc: with: No such file or directory gcc: space": No such file or directory The compile command from ./configure is ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' and I am not able to modify this (I could perhaps, but working around autoconf in this way is not a general solution). I think it comes down to getting a shell variable that contains spaces to be parsed as a single command line variable rather than split at spaces. The simplest shell example I can come up with is to create a file with spaces and attempt to list is with ls with a shell variable as the argument to ls : $ touch "a b" $ file="a b" $ ls $file ls: a: No such file or directory ls: b: No such file or directory This works, but is illegal since in autoconf I can't modify the shell code: $ ls "$file" a b None of the following attempts at quoting things work: $ file="\"a \"b"; ls $file ls: "a: No such file or directory ls: b": No such file or directory $ file="a\ b" $ file="a\\ b" $ file="`echo \\"a b\\"`" and so on. Is this impossible to accomplish in shell scripts? Is there a magical quoting that will expand a shell variable with spaces into a single command line argument?
Tags (comma-separated)
Save Edits
Cancel