How can I launch multiple xterm windows and run a command on each, leaving each window open afterward?

前端 未结 4 761
陌清茗
陌清茗 2021-01-03 07:53

I\'m lazy, and I prefer that computers do my work for me. I ssh into several machines on a daily basis, so I created a simple script that launches some xterm windows and pl

4条回答
  •  醉酒成梦
    2021-01-03 08:23

    This answer gives one of the best answers I've seen so far to do this. Use the bash --init-file flag either in the shebang or when executing the terminal:

    #!/bin/bash --init-file
    commands to run
    

    ... and execute it as:

    xterm -e /path/to/script
    # or
    gnome-terminal -e /path/to/script
    # or
    the-terminal -e bash --init-file /path/to/script/with/no/shebang
    

    My only real complaint with the exec option is if the command executed prior to exec bash is long running and the user interrupts it (^C), it doesn't run the shell. With the --init-file option the shell continues running.

    Another option is cmdtool from the OpenWin project:

    /usr/openwin/bin/cmdtool -I 'commands; here'
    # or
    /usr/openwin/bin/cmdtool -I 'commands; here' /bin/bash
    

    ... where cmdtool injects the commands passed with -I to the slave process as though it was typed by the user. This has the effect of leaving the executed commands in the shell history.

提交回复
热议问题