在与Bash斗争了相当长一段时间之后,我发现下面的代码为转义特殊字符提供了很好的基础。当然,它是不完整的,但最重要的字符被过滤了。
如果有人有更好的解决办法,请告诉我。它的工作和可读性,但不漂亮。
file_escaping = ' echo "$FILE" | \ .
Sed s/\ /\\\\\\\ /g | \
Sed s/\'/\\\\\\\'/g | \
Sed s/\&/\\\\\\\&/g | \
Sed s/\;/\\\\\\\;/g | \
Sed s/(/\\\\\(/g | \
Sed s/)/\\\\\)/g '