打开终端并使用c语言在打开的终端中执行命令

时间:2014-08-02 11:55:28

标签: c linux terminal

我想打开一个新终端并在该打开的终端中运行ssh会话。我正在使用的代码是

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

void main()
{
    char cmd[50];
    strcpy(cmd,"gnome-terminal");
    system(cmd);
    strcpy(cmd,"ssh 172.27.23.143");
    system(cmd);
}

但它不起作用。请帮忙

1 个答案:

答案 0 :(得分:1)

对于您想要做的事情,您应该使用以下格式的命令:

void main()
{
    char cmd[50];
    strcpy(cmd,"gnome-terminal -e \"ssh 172.27.23.143\"");
    system(cmd);
    return;
}

在命令完成时使新终端保持打开状态: 在gnome-terminal

  • 转到修改 - &gt; 个人资料首选项 - &gt; 标题
  • 单击“命令”选项卡。
  • 从标有Hold the terminal的下拉菜单中选择When command exits
  • 您应该为此创建一个新的配置文件并使用
    执行 gnome-terminal --window-with-profile=MYPROFILE -e mycommand

编辑: 要链接多个命令,请使用:

strcpy(cmd,"gnome-terminal -e \"ssh 172.27.23.143 && command1 && command2 && commandN\"");

在shell中,我们使用&&运算符链接命令。