linux下通过命令启动多个终端执行相应的命令和程

发布时间:2022-11-22 18:45:53阅读:32次
系统大全为您提供在一些情况下,往往需要同时启动多个终端并让终端执行自动执行相应的命令,进而达到提高操作效率的目的。在linux下gnome-terminal启动终端命令,gnome-terminal-x后跟执行的命令,bash是linux启动子shell的命令,bash-c"所要执行的命令串",通过嵌套gnome-terminal-xbash-c......,表示启动新终端,并在新启动的终端里执行bash-c,即启动子shell,由子shell执行-c后面的双引号括起来的命令串。同时为保证gnome-terminal新启的终端不退出,要在bash-c的命令串后加bash让其有一个进程在运行,本例中加的是erl命令,直接进入erl终端,当然不会退出。c语言版:#include<unistd.h>#include<syspes.h>#include<stdio.h>#include<stdlib.h>intmain(intargc,char*argv[]){intcount=atoi(argv[1]),i;for(i=0;i<count;i++){pid_tpid=fork();if(pid==0){//printf("child=%d",getpid());system("gnome-terminal-xbash-c'ulimit-n1000000;cd/home;erl'");exit(0);}}exit(0);}执行./a.out3该程序采用异步多进程方式,fork子进程,通过system(。。。。)系统调用执行相应的命令,该程序需要注意的是(1)main函数如何带参数,所带的参数是从argv[1]开始的,argv[0]默认的参数为“0”,实际上argv数组的长度是外面参数的个数加1;(2)fork出的子进程,照样会执行for循环,因此为避免此现象发生,fork子进程执行后,exit(0)让子进程退出,启动下一个子进程;(3)fork返回值在子进程里是0,在父进程里是生成的子进程进程号;(4)c语言的atoi()可以把字符串转化为整型。Bashshell版#!/bin/bashfor((i=0;i<$1;i++))do((port=2+i))gnome-terminal-xbash-c"cd/home;ulimit-n1000000;erl+Ktrue-runioformat$port"&done该脚本更加轻量灵活,注意&是切换到后台运行,防止阻塞当前进程的for的下一次执行,由此可知shell也是多进程模型,而js脚本是单进程模型。    以上就是系统大全给大家介绍的如何使的方法都有一定的了解了吧,好了,如果大家还想了解更多的资讯,那就赶紧点击系统大全官网吧。本文来自系统大全http://www.win7cn.com/如需转载请注明!推荐:win7纯净版
排行榜