Работает, скопировано из эха, но не прямо из командного файла - PullRequest
1 голос
/ 12 октября 2011
#!/bin/bash

shopt -s nullglob
eval="c:cd(\\\"src/\\\"),"

for f in src/*.erl
do
  filename=`basename "$f"`
  eval=${eval}" c:c(\\\"$filename\\\"),"
done

eval=${eval}" c:q()."
echo erl -eval "\""${eval}"\""
erl -eval "\""${eval}"\""

Здесь, если я скопировал вывод эха и запустил его из командной строки - он работает, но последняя строка не удалась (я проверил различные подходы с кавычками и escape-символами, но безуспешно.

1 Ответ

2 голосов
/ 12 октября 2011

Вам не нужно, чтобы обратная косая черта была частью строки, которую вы строите (она все равно заключена в кавычки), и вам не нужны дополнительные двойные кавычки при вызове erl -eval:

#!/bin/bash

shopt -s nullglob
eval="c:cd(\"src/\"),"

for f in src/*.erl
do
  filename=`basename "$f"`
  eval=${eval}" c:c(\"$filename\"),"
done

eval=${eval}" c:q()."
echo erl -eval "\""${eval}"\""
erl -eval "${eval}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...