2014-03-14 31 views
0

我想实现的是如下所示:(脚本)如何以交互方式启动gnu屏幕,然后在其中运行一些命令?

  1. 开始在一些终端
  2. 运行GNU屏幕庆典:exec screen
  3. 在后台启动我的桌面会话:所以现在我结束startx &
  4. 与一个终端屏幕运行和X运行在背景(在某些vt)准备使用和连接从其他地方通过屏幕。

但我想在脚本中自动执行上述过程(实际上是将其放入我的〜/ .bashrc中)。什么是简单和优雅的方式来做到这一点?

我得到的最接近镜头是这样的:

exec screen bash -c "startx; bash" 

但这种方式运行startx无法进入后台。也就是,

exec screen bash -c "startx &; bash" 

将不起作用。

另外,当谷歌搜索时,我碰到了this thread。但是

exec screen bash -i << EOF 
startx & 
exec < /dev/tty 
EOF 

也不工作。我也试过

exec screen bash -i --rcfile /tmp/somefile 

与在/ tmp/somefile startx &。再次不工作。

任何想法?

+0

该手册页涵盖了这些场景以及更多。 –

+0

另一个说明,我不认为,你想''startx'在'〜/ .bashrc' :-) – anishsane

+0

@anishsane感谢评论。我会将startx放入〜/ .bashrc加上一些逻辑来确定它是哪个tty,所以startx只会在特定的tty上运行。我曾经这样做过,现在只是添加一层屏幕会让事情变得凌乱。 –

回答

1

&;都是命令终止符;你只能使用其中一个。

exec screen bash -c "startx & bash" 
+0

哇!它有点作品。谢谢!但是,在上面的命令行中,startx&process不属于交互式运行的bash(运行“作业”时不会显示任何内容),所以与手动启动有点不同。是否有可能完全模拟手动程序? –

+0

不是我所知道的。我不知道用脚本启动一个'bash' shell,然后“drop”到交互式shell(类似于'python -i')。您可以使用屏幕命令来简单地统计bash shell,然后发送按键序列“startx&”来模拟输入它,但我对“屏幕”不再熟悉,无法建议如何操作。 – chepner

+0

事实证明,如果我交换-i选项和--rcfile选项,我的问题中的最后一个命令行将起作用,因为在bash中,所有长选项必须放在short选项之前。无论如何,如果今天没有更多的答案,我会接受你的答案:-) –

相关问题