我有这个代码,我似乎无法运行:
echo "digraph G{"; cat "$file"; echo "}" | dot -T png > graph.png
终端回应所有它应该被卡在}符号上。我猜在语法上有些不对劲。
Warning: <stdin>: syntax error in line 1 near '}'
你能快速帮忙吗?
答案 0 :(得分:4)
据推测,您打算将各种语句的所有输出发送到dot
,如下所示:
{
echo "digraph CG{"
cat "$tmp"
echo "}"
} | dot -T png > callgraph.png
答案 1 :(得分:3)
使用bash,你可以折叠echo; cat; echo
echo "digraph CG{$(< "$tmp")}" | dot ...
或者,如果您喜欢额外的换行符
printf 'digraph CG{\n%s\n}\n' "$(< "$tmp")" | dot ...