2017-04-09 5 views
-2

Cでこれを行う方法は知っていますが、Goでどのように行うのですか?コマンドを入力として受け取り、端末で実行するプログラム

これは私が使用しているコードです。このような

#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 

#define MAX_CMN_LEN 100 

int main(int argc, char *argv[]) 
{ 
    char cmd[MAX_CMN_LEN] = "", **p; 

    if (argc < 2) /*no command specified*/ 
    { 
     fprintf(stderr, "Usage: ./program_name terminal_command ..."); 
     exit(EXIT_FAILURE); 
    } 
    else 
    { 
     strcat(cmd, argv[1]); 
     for (p = &argv[2]; *p; p++) 
     { 
      strcat(cmd, " "); 
      strcat(cmd, *p); 
     } 
     system(cmd); 
    } 

    return 0; 
} 
+0

を、私は単純にexecvp' 'に' argc'を渡すのではなく呼び出すことによってこれを行うだろう'system'はコマンドにシェルの解釈を適用します。あなたは「行く」からどのような行動をしたいですか? –

+0

@WilliamPursell同じことをしたいが、GOlangを使いたい。私はいくつかの調査を行っており、goによって提供されるsshパッケージを使用して実行できることがわかりました。しかし、私は正確にどのように把握することはできませんか? –

答えて

1

何か:Cで

package main 

import (
    "os" 
    "os/exec" 
) 

func main() { 
    if len(os.Args) < 2 { 
     panic("Usage: ./program_name terminal_command ...") 
    } 

    cmd := exec.Command(os.Args[1], os.Args[2:]...) 
    cmd.Run() 
} 
関連する問題