Создание программы на C ++ для запуска сценария оболочки - PullRequest
0 голосов
/ 14 февраля 2012

Я пытаюсь написать программу, которая принимает значение аргумента командной строки и передает его в сценарий оболочки.

Я уже создал сценарий оболочки: "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 ]

3 голосов
/ 14 февраля 2012

В духе помощи вам, вероятно, вы захотите изменить:

system("findname.sh");

на

system(my_command);

Но ваш код беспорядок и не компилируется в любом случае.Это явно не тот код, который вы запускали, если он выполнялся.

Избавьтесь от синтаксических ошибок и всех ненужных вещей, и вы получите до трех строк или около того, что имеет смысл.

1 голос
/ 14 февраля 2012

Должно быть:

system("./findname.sh");

вместо

system("findname.sh");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...