首页 > 解决方案 > 可以直接在命令行调用函数吗?

问题描述

例如,如果我有以下功能

void printText(char text [100]){
    printf("%d", text);
}

然后我可以在命令行中执行此操作吗

printText(Hello World)

然后得到我的预期输出

Hello World

标签: clinuxcommand-line

解决方案


这取决于你的外壳。一些 shell 确实支持函数。在bashPOSIX shell 和可能的其他 shell 中,以下是正确的语法:

printText() {
   printf '%s\n' "$1"
}

printText 'Hello World'

如果您的意思是字面上的问题,那么不,即使不提及函数所在的文件,也无法调用函数。用于编写函数的语言无关紧要。

但是可以编译一个 C 函数并以某种方式从 shell 调用它吗?是的。如果您从该函数创建了一个共享库(unixy 系统上的共享对象或 Windows 上的 DLL),则可以。这样做需要一个工具,但这样的工具可能会退出。(Windows 还支持COM 对象和许多衍生技术。其中一些甚至可能使任务更容易。)

(我不知道这样的工具是否真的存在或者它们是什么,因为软件推荐在 StackOverflow 上是题外话。我会说这样的工具可以围绕诸如libffi 之类的库构建。)


推荐阅读