Linux屏幕打开会话并更改目录

Posted

技术标签:

【中文标题】Linux屏幕打开会话并更改目录【英文标题】:Linux screen open session and change directory 【发布时间】:2014-11-08 00:44:06 【问题描述】:

我对 Linux 中的“屏幕”会话有疑问。

我编写了一个简单的 shell 脚本,它应该打开一个附加到它的屏幕会话并更改目录“cd 1”,其中“1”是我运行脚本的目录中的现有子目录. 所以这是我目前所拥有的:

screen -d -m -S mysession
screen -S mysession -p 0 -X cd 1

到目前为止,该脚本仅打开一个屏幕会话,但当我附加到屏幕时,我可以看到它没有更改目录。

知道为什么它不会更改目录吗?

【问题讨论】:

【参考方案1】:

以下方法可以解决问题(不过,它目前确实带有打印刚刚执行的命令的丑陋副作用)

#!/bin/bash
screen -dmS mysession sh
screen -S mysession -p 0 -X stuff "cd /some/path/
"

在 OSX 10.9.5 和 Ubuntu 12.04 上测试。

【讨论】:

还是不行!我在 Debian 上,但我怀疑这就是原因。当我运行脚本并附加到屏幕时,它仍然在我的主目录中,而不是 /home/1/ 你试过绝对路径吗? /home/abedin/1/(假设您的用户是 abedin)。另外,我怀疑您在 /home/ 下有一个名为 '1' 的目录,其中应该只有用户目录(通常)。 很抱歉造成混淆,但目录“1”的绝对路径是“/home/abedin/test/1”。我正在从“/home/abedin/test”运行我的脚本,当我附加到屏幕时,我仍然在“/home/abedin/test”中。是的,我尝试了绝对路径,但还是一样。 在 OSX 中,我有 Bash 3.2.53 和 Screen 4.00.03。 Ubuntu:Bash 4.2.25 和 Screen 4.00.03jw4,如果有帮助的话。在 OSX 和 Ubuntu 中工作。

以上是关于Linux屏幕打开会话并更改目录的主要内容,如果未能解决你的问题,请参考以下文章

LINUX如何改屏幕刷新频率

Linux 命令(240)—— tput 命令

Linux 命令(240)—— tput 命令

您如何从屏幕会话中编写 gnu screen 脚本以打开新窗口并在其中运行命令?

linux如何修改用户主目录

《Linux学习并不难》文件/目录管理:cd命令更改工作目录路径