从shell调用C函数(libcanberra)

我想在一个有趣的项目中使用Git钩子来播放系统声音。

有一个freedesktop标准和一个用于系统声音的C库( libcanberra ),但libcanberra没有可执行文件。 有没有简单的方法来从shell脚本调用libcanberra的ca_context_play方法,而无需启动完整的Perl或Python解释器? 如果没有,我将如何与Perl / python?

你为什么不写一个简单的C程序,通过你在命令行指定的内容来调用函数呢?

你不能从shell调用C函数(除非你开发了几个shell的插件 – 比如zsh–接受它们,但是你不会这样问你的问题)。

你只能从一个shell运行一个程序,并且你可以编写一个程序,如匿名user112358132134建议的那样。

有几个程序可以在Linux上播放一些声音。 在我的Debian框中, sox软件提供了play命令。

在shell中运行它之前,需要编译C代码,所以不可能从shell直接调用C函数。

命令行只执行机器码。 当你看到它执行文本(shell脚本或Python脚本),它只是调用另一个程序(如Python虚拟机),可以执行文本。 所以编译语言(如C或C ++)不能直接执行。