【发布时间】:2016-12-09 20:38:06
【问题描述】:
我正在尝试编写一个 bash 脚本来创建一个带有一组特定窗口的屏幕(软件)会话,并 cd 每个窗口上的特定目录。
这是我目前的脚本:
#!/bin/bash
killall screen;
screen -AmdS work;
screen -S work bash -c "cd myDir";
问题是我似乎无法在该会话中更改目录。运行此脚本后,我运行$ screen -r,当前目录仍然是我的默认目录(~/)。
(我尝试将cd 命令更改为touch myFile,并且在我运行脚本后文件就在那里)
【问题讨论】:
-
如果您在终端中尝试
bash -c "cd myDir",您会发现它不会更改目录。使用 screen 命令(not shell 命令)chdir更改目录,然后打开一个新的 shell,它将在该目录中启动 -
嗯——它改变了目录,但是它改变了你用
bash命令启动的新shell的目录,而不是运行的shell/程序的目录它。并且由于新的 shell 在完成运行脚本后立即退出,它通过bash -c...
标签: linux bash gnu-screen