由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 请教:如何把程序运行结果转给 bash variable ?
相关主题
error C2223: left of '->GetEnv' must point to struct/union (转载)How can we share system environment variable between two different process?
这Shell脚本哪里有问题equivilent $REMOTEHOST in ksh
Matlab 回车键的问题怎么从script中把环境变量传回到当前shell中? (转载)
get System environment variablesas and environmental variables
Newbie question
相关话题的讨论汇总
话题: bash话题: endl话题: getenv话题: cout话题: abc
进入Programming版参与讨论
1 (共1页)
n***s
发帖数: 287
1
我需要写个简单的C++程序test.cpp, 如
int main() {
int a;
double b;
string c;
// do something about a, b, c
cout << a << endl;
cout << b << endl;
cout << c << endl;
return 0;
}
比如编译之后的executable叫test.out,
然后需要在一个bash script中运行test.out, 我想在bash中定义
三个变量A, B, C, 运行完test.out之后就立即把abc的值赋给ABC,
两个问题:
how to make variable B store a floating point number ??
how to pass values of a,b,c to A,B,C in bash ??
我bash比较外行,不知道这个该怎么做?或者cpp程序也要做相应
调整?还请高人指点,包子答谢!
C****i
发帖数: 1776
2
shell是解释形语言,变量不需要明确定义,整型浮点型无所谓。
shell获得运行程序的返回值真假,可以用变量 $?
如果要在shell和程序之间传递变量,可以考虑使用管道或者重定向
把程序的标准输出 stdout重定向到一个shell变量,反之亦然。
请自行搜索解决方案

【在 n***s 的大作中提到】
: 我需要写个简单的C++程序test.cpp, 如
: int main() {
: int a;
: double b;
: string c;
: // do something about a, b, c
: cout << a << endl;
: cout << b << endl;
: cout << c << endl;
: return 0;

w***g
发帖数: 5958
3
bash不能进行浮点运算,如果需要的话得重定向到bc. 你这个情况估计可以这么搞:
./test | while true
do
read A
read B
read C
在这里用ABC
done

【在 n***s 的大作中提到】
: 我需要写个简单的C++程序test.cpp, 如
: int main() {
: int a;
: double b;
: string c;
: // do something about a, b, c
: cout << a << endl;
: cout << b << endl;
: cout << c << endl;
: return 0;

c********t
发帖数: 27
4
1)
B=`echo "scale=4;4/3"| bc`
echo $B
1.3333
2)
#include
getenv and setenv
man getenv
man setenv
Note: Do not modify strings returned from getenv; they are pointers to
data that belongs to the system.
Or If you want to look into it.
#include
#include
int main(int argc, char *argv, char *envp[]){
while(1){
printf("%s\n", envp++);
}//segfault here
}
n***s
发帖数: 287
5
Thanks, Bao Zi sent.
Actually I also found, if running test.out pops up one number on screen,
B=$(echo `./test.out`)
can also pass the number to B.
But I don't know how to make it work if two numbers pop up and I want
to pass them to A and B .... any idea?
1 (共1页)
进入Programming版参与讨论
相关主题
How can we share system environment variable between two different process?这Shell脚本哪里有问题
equivilent $REMOTEHOST in kshMatlab 回车键的问题
怎么从script中把环境变量传回到当前shell中? (转载)get System environment variable
sas and environmental variablesNewbie question
error C2223: left of '->GetEnv' must point to struct/union (转载)
相关话题的讨论汇总
话题: bash话题: endl话题: getenv话题: cout话题: abc