2015-08-22 14 views
0

我試圖解決一個問題,我想要一個bash腳本來調用c程序和一個值從c程序返回到bach腳本並存儲在一個變量。如何將c程序中的值返回給調用它的後臺腳本?

下面是一個例子(代碼是不是真的寫正確):

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; 
} 

這可能嗎?

+0

將值打印到stdout然後捕獲它 –

+0

因此,像[this](http://stackoverflow.com/questions/4651437/how-to-set-a-bash-variable-equal-to-the-output -from-A-命令)?如果是這樣,您將需要使用printf語句。 – tonysdg

回答

1

你可以得到的最後一個程序的返回值您通過使用$?執行,或者您可以將值打印到標準輸出然後捕獲它。

#include <stdio.h> 

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

,然後在bash做

value=$(./my_program) 
echo $value 

結果將是my_value

1

打印的價值在你的C程序標準輸出:

printf("%s",value); 

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

您的bash腳本:

#!/bin/bash 

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

有你的腳本回聲從C應用程序返回的值,做

echo $? 

不是C問題,雖然

+1

返回碼的範圍只有0到255。 – Cyrus

相關問題