我经常在dot个(graphviz格式)文件中创建png个文件.执行此操作的命令如下:

$ dot my_graph.dot -o my_graph.png -Tpng

然而,我希望能够有一个较短的命令格式,如$ make my_graph.dot自动生成我的png文件.

目前,我使用的是一个Makefile,我在其中定义了以下规则,但配方仅在包含Makefile的目录中可用

%.eps: %.dot
    dot $<  -o $@ -Teps

Is it possible to define custom implicit GNU Make recipes ?,这将使上述配方在全系统可用

If not, what solution do you use to solve those kind of problem ?

设置:

  • 带有ZSH/Bash的Fedora Linux

推荐答案

您可以在shell的启动文件中定义shell函数,例如.

dotpng()
{
    echo dot ${1%.dot}.dot -o ${1%.dot}.png -Tpng;
}

这个函数可以这样调用

dotpng my_graph.dot

dotpng my_graph

如果文件名中有.dot,则代码${1%.dot}.dot会将其从文件名中剥离出来,并(再次)将其追加,以允许my_graph.dotmy_graph都作为函数参数

Linux相关问答推荐

一个bash脚本,用于基于2列映射文件替换多个文件名中的模式

C++17:G++8.5版似乎无法正确生成无符号64位伪随机整数

Arch_prctl的用例是什么

条件句if的正确写法是怎样的?

ENQCMD 指令的好处和微操作是什么?

使用 bash 在包含模式的 java 文件中查找行,然后替换该行的另一部分

在 puppet 中管理 linux 的用户密码

跨多台计算机管理用户配置文件

全屏(Fullscreen)小部件

关于 putenv() 和 setenv() 的问题

如何构建在 Android 上运行的本机(命令行)可执行文件?

bash 中的sed命令

如何计算列的平均值

更改核心转储的位置

C.UTF-8 和 en_US.UTF-8 语言环境有什么区别?

如何在 Bash 中对齐空格分隔表的列?

Docker Bash 提示不显示 colored颜色 输出

以原子方式移动目录

命令行 Arduino 编译和上传?

Bash:等待超时