从批处理文件中复制回来但不正确的作品

时间:2011-10-12 14:29:33

标签: bash erlang

#!/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}"\""

在这里,如果我复制echo输出并从命令行运行它 - 它的工作,但最后一行失败(我用引号和转义字符测试了不同的方法,但没有成功。

1 个答案:

答案 0 :(得分:2)

您不需要将反斜杠作为您正在构建的字符串的一部分(无论如何都引用它),并且在调用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}"