我一直在使用screen
'schdir
命令为新屏幕窗口设置新的工作目录,稍后会详细介绍。我需要做的是找出设置之前的设置,以便我可以将其重新设置。我可以通过启动新会话并回显来实验性地执行此操作,$PWD
但我似乎无法更具体地执行此操作,即我可以获取并将值存储在脚本中。我觉得非常详细的手册页中可能有一些命令可以完成此操作,但我还没有找到它。
现在来解释一下我具体在做什么,需要这样做:
我有一个脚本,可以并行启动大约 4 个进程,让每个进程在自己的窗口中启动非常方便。在 bash 脚本中,很容易确定我是否在脚本screen
中运行脚本:还有其他方法,但这种方法很好。在脚本中,我可以执行。这会在多用户模式下附加到当前会话,并要求它打开一个运行进程的新窗口。这在脚本中是必要的,因为如果没有 -x,它会抱怨当前命令不在终端中运行,这是正确的,它不是交互式的。无论如何,进程 1 需要在特定路径中运行。不只是一个,而是进程 1 的不同版本的四个或五个路径中的一个。我从该路径运行脚本。但通常不是从该路径启动的,因此进程 1 将在设置为启动位置的新工作目录中启动。不过没问题,只需在启动进程 1(2、3 和 4)之前执行,您现在就在正确的路径上。但是,您已经永久更改了新窗口的默认工作路径,这会让用户(我和一些同事)感到不安。所以在退出之前发出应该没有问题。但是,我似乎无法找出是什么,坦率地说,它可能是什么,没有什么比它肯定是那么简单了。如果您仍在阅读并想知道我的问题是什么,那就是第一段中的问题,我如何才能找出当前的设置。screen
if [[ $TERM =~ screen* ]]; then
screen -x -X screen process1
screen
screen
screen
screen -x -X chdir $PWD
screen
screen -x -X chdir $oldCHDIR
$oldCHDIR
$HOME
screen
chdir