大多数 Makefile 用户使用命令行。因此他们无需在 GUI 中调用它。但 Makefile 也可以用作用户的管理工具。
在我的案例中,一名职员负责维护一份每天都会更改的文档,一旦她保存了文件,“来源”就会更改。我希望她将其转换为 PDF,使用给定的模板对 PDF 进行标记,对其进行加密,将其与其他几个文件合并,并使用不同的标记为不同的部门生成三个版本。
我有一个为此目的而编写的 Makefile,已经写好了。有没有办法让她调用 Makefile,而不必让我陷入进行额外命令行培训的泥潭?她可以保存文档,调用 Makefile,然后就大功告成了。
PS 这与如何执行 shell 脚本或 .EXE 文件无关,因为问题中根本没有 shell 脚本或 .EXE 文件或任何可执行文件。
答案1
我有两个解决方案给你,我更喜欢解决方案 B
解决方案 A
无需终端的最简单方法是,在所在的文件夹中添加包装脚本Makefile
。
创建包装器脚本
nano /your/make/file/folder/makeit
添加两条简单的线
#!/usr/bin/env bash make
使脚本可执行
chmod +x /your/make/file/folder/makeit
配置 nautilus 每次双击可执行文本文件时询问
gsettings set org.gnome.nautilus.preferences executable-text-activation ask
或者一开始不问
gsettings set org.gnome.nautilus.preferences executable-text-activation launch
解决方案 B
AMakefile
有 mimetype
text/x-makefile
因此创建并使用带有包装脚本的桌面文件
创建包装器脚本
mkdir -p ~/bin nano ~/bin/makeit
添加以下代码
#!/usr/bin/env bash cd "$(dirname "$1")" || exit make
创建桌面文件
nano ~/.local/share/applications/makeit.desktop
添加下面的配置
[Desktop Entry] Name=Make It Comment=Start the make command Exec=/home/user/bin/makeit Icon= Terminal=false Type=Application Categories=Editor; StartupNotify=true MimeType=text/x-makefile;
重要的代替
user
在包含您的用户名的行中Exec=
,输出echo $USER
重新启动 Unity/GNOME Shell,对于 GNOME Shell(例如Alt- )F2,输入
r
和EnterNautilusnautilus -q
Makefile
与makeit
脚本关联打开文件管理器并右键单击
Makefile
点击Open With Other Application
点击按钮View All Applications
选择条目Make It
答案2
只需创建一个 cron 作业(通过crontab -e
),每天(甚至每分钟)运行该 Makefile。
答案3
我发现了 nautilus 中的“在终端中打开”功能。
- 右键单击 Makefile 周围的空白处
- 选择“在终端中打开”
- 类型
make
这不是所要求的,但却是最接近的解决方案。培训新命令行用户的一半困难是当前目录的概念 - 在这种情况下可能是全部困难 - 使该解决方案看起来不错。