Вы можете передать значение из вашей программы в оболочку через stdout
(как уже было сказано) или с помощью инструкции return
в вашей функции main()
из вашей программы на C. Однострочник ниже иллюстрирует оба подхода:
echo -e '#include <stdio.h>\n int main() { int a=11; int b=22; printf("%d\\n", a); return b; }' | gcc -xc -; w=$(./a.out); echo $?; echo $w
Выход:
22
11
Переменная a
печатается stdout
и переменная b
возвращается в main()
. Используйте $?
в bash, чтобы получить возвращаемое значение самой последней вызываемой команды (в данном случае ./a.out
).
Вы можете использовать, например, ['popen'] (http://linux.die.net/man/3/popen) или тому подобное. –
Вы хотите получить его в * shell * variable или переменную внутри программы C? Если в оболочке вы должны отредактировать теги своего вопроса, чтобы отразить это, так как не имеет значения, на каком языке запущена программа, которую вы пытаетесь запустить. –
Joachim Pileborg -thanks для ответа я хочу получить значение переменной, которое находится внутри моя программа c в переменную командной строки, то есть «var», чтобы я мог использовать ее в другом скрипте или программе. – pkm