如何使用 bash 脚本 "setup" 筛选
How to "setup" screen using a bash script
我正在尝试编写一个 bash 脚本来创建一个屏幕(软件)会话,其中包含一组特定的 windows,并且 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'
更好的解决方案
以下代码将在目录 myDir1/2/3
.
中创建一个分离屏幕,每个屏幕有 3 个屏幕 运行ning 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 -
,它将 return 您返回到原始工作目录。
最后只需使用 screen -r work
附加您的 运行ning 屏幕会话。
你可以将你想要运行的命令行(包括最后的换行符)保存到一个寄存器中并粘贴到屏幕输入:
screen -S work -X register c $'cd myDir\n'
screen -S work -X paste c
我正在尝试编写一个 bash 脚本来创建一个屏幕(软件)会话,其中包含一组特定的 windows,并且 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'
更好的解决方案
以下代码将在目录 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 -
,它将 return 您返回到原始工作目录。
最后只需使用 screen -r work
附加您的 运行ning 屏幕会话。
你可以将你想要运行的命令行(包括最后的换行符)保存到一个寄存器中并粘贴到屏幕输入:
screen -S work -X register c $'cd myDir\n'
screen -S work -X paste c