我正在尝试编写一个bash脚本,以创建具有一组特定窗口的屏幕(软件)会话,并在每个CD上创建cd到特定目录.
这是我到目前为止的脚本:
#!/bin/bash
killall screen;
screen -Amds work;
screen -S work bash -c "cd myDir";
问题是我似乎无法在该会话上更改目录.运行此脚本后,我运行$screen -r并且当前目录仍然是我的默认目录(〜/).
(我尝试将cd命令更改为touch myFile,并且在运行脚本后该文件在那里)
解决方法:
尝试以下操作,它将使用bash打开一个新的屏幕会话,这将更改目录并使用该目录作为当前目录打开一个新的bash:
screen -S work bash -c 'cd myDir && exec bash'
添加-d -m使其以分离模式运行.重新连接后,您将进入myDir:
screen -S work -d -m bash -c 'cd myDir && exec bash'
更好的解决方案
以下代码将创建一个独立屏幕,其中包含3个屏幕,每个屏幕在目录myDir1 / 2/3中运行myCommand1 / 2/3.
cd myDir1
screen -S work -d -m
screen -S work -X exec myCommand1
screen -S work -X chdir myDir2
screen -S work -X screen
screen -S work -X exec myCommand2
screen -S work -X chdir myDir3
screen -S work -X screen
screen -S work -X exec myCommand3
cd -
注意最后一张CD-将使您返回到原始工作目录.
最后,只需使用screen -r work来附加您正在运行的屏幕会话.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。