【发布时间】:2015-04-29 15:11:02
【问题描述】:
我有以下 test.cpp c++ 程序
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int main()
{
float a,b,c;
cout<<"Give 1st number";
cin>>a;
cout<<"Give 2nd number:";
cin>>b;
c=a+b;
cout<<"\n"<<a<<"+"<<b<<"="<<c<<endl;
return 0;
}
我想创建一个 shell 脚本 来提供输入变量。 我知道如何传递一个变量,我想知道是否有办法传递 2 个变量... 像下面这个不起作用的 test.sh 文件
#!/bin/bash
g++ test.cpp -o testexe
chmod +x testexe
a=1
b=2
./testexe <<< $a $b
【问题讨论】:
-
你的意思是像
echo $a $b | ./testexe? -
./testexe <<<$'$a\n$b\n'或类似的应该也可以工作$''需要在那里获得一个文字换行符(用于单行演示),但可以在多行上完成。 -
因为这是关于 shell 部分而不是 C++ 部分,您可能想要松开 c++ 标签。否则某些 C++ 人员可能会阅读该问题并对该代码发出冗长的哀号(重复包含、不必要的包含、C 头包含、有问题的 using 指令、奇怪的缩进、Missingwhitespacetomakeyourcodeunreadable,...)
-
@EtanReisner,
$'$a\n$b\n'不会扩展变量。 -
@CharlesDuffy 好点。我以为它会(我基本上从不使用它),因为它扩展了转义。所以
<<"$a"$'\n'"$b"对于单行使用是必要的(假设输入需要换行)。
标签: bash variables executable stdin