如何将c程序中的值返回到调用它的后台脚本?

时间:2015-08-22 20:14:01

标签: c bash return call

我试图解决一个问题,我希望bash脚本调用c程序,并将c程序中的值返回到bach脚本并存储在变量。

这是一个例子(代码没有真正写好):

Bash脚本:

$value = ./foo
echo $value

C程序:

int main() {
    //Have a value here that is returned to the variable 'value' in the bash script.
    return 0;
}

这可能吗?

3 个答案:

答案 0 :(得分:1)

将值打印到c程序中的stdout:

printf("%s",value);

printf("%s\n",value);

你的bash脚本:

#!/bin/bash

value="$(your_c_program)"
echo "$value"

答案 1 :(得分:1)

您可以使用$?获取最后执行的程序的返回值,也可以将值打印到stdout然后捕获它。

#include <stdio.h>

int main()
{
    printf("my_value");
    return 0;
}

然后在bash做

value=$(./my_program)
echo $value

结果将为my_value

答案 2 :(得分:0)

要让脚本回显从C应用程序返回的值,请执行

echo $?

虽然不是C问题