2012-02-14 42 views
0

我正在尝试编写一个程序,它接收命令行参数值并将其传递给shell脚本。创建C++程序来运行shell脚本

我已经创建的shell脚本:“findname.sh”

,这是我已经写了我的main.cpp

#include <iostream> 
#include <cstdio> 
#include <cstdlib> 

using namespace std; 
char * input1; 
char my_command[50]; 

int main(int argc, char *argv[]) 
{ 
    input1=argv[1]; 
    char* command_line; 
    sprintf(my_command, "./findname.sh %s", input1); 
    if(argc != 2){ 
     system("findname.sh"); 
    cout << "usage: "<< argv[0] << " Some Value\n"; 
    exit(0); 
} 
command_line=argv[1]; 
cout << "You entered :" << command_line <<" from the command line." << endl; 

但是当我尝试符文findName XXXXXX 它说没有找到

+2

我觉得你不小心的问题。 – airplaneman19 2012-02-14 02:46:01

+1

我真的很想用第一个参数来调用这个程序,它的长度是36个字符。 – 2012-02-14 03:50:04

回答

3

命令在帮助你的精神,你可能想改变:

system("findname.sh"); 

system(my_command); 

但你的代码是一个烂摊子,反正不会编译。这显然不是你运行的代码,如果它运行。

摆脱语法错误和所有不必要的东西,你会下降到三行左右,这是有道理的。

1

它应该是:的

system("./findname.sh"); 

代替

system("findname.sh"); 
+0

如果您阅读格式化提示,它会更好。其中,你会发现你不应该使用HTML标签进行格式化。 – 2012-02-14 04:28:56

+0

这仍然不包括shell脚本的参数。 – 2012-02-15 12:10:31