我正在将display-dhammapada
的文本输出绘制到现有图像中。以下CLI命令有效:
convert test.jpg
-pointsize 30
-draw "gravity northwest
fill black
text 120,200 '$( display-dhammapada)'"
result.png
...除非我收到有收缩的报价。然后文本输入过早结束,出现错误,例如:
convert: non-conforming drawing primitive definition `s' @ error/draw.c/DrawImage/3182
这是一个撇号的案例。
如果我将引号从" ' ' "
反转为' " " '
,那么我最终会在图片上显示文字$( display-dhammapada)
。
在这种情况下,清理输入的最佳方法是什么?
答案 0 :(得分:1)
您可以通过sed
这样清理您的报价:
convert -size 1000x1000 xc:red -pointsize 30 -draw "gravity northwest fill black text 120,200 '$(./display-dhammapada|sed "s/'/\\\'/g")'" result.png
显示法句
#!/bin/bash
printf "There's one there!"
编写可以维护和修改的通用杀菌程序脚本可能是一个想法。您可以考虑不允许它传递@
作为第一个字符,它会使ImageMagick读取文件并允许攻击,您可能不希望允许其他各种事情通过 - 例如尾随换行符或分号。