2012-02-14 27 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