
我已将 .screen rc 配置为在创建屏幕会话时创建 10 个窗口
screen -t task1 0
screen -t task2 1
screen -t task3 2
.
.
我想要的是,每当我创建一个屏幕会话时,每个窗口都应该 ssh 到一台机器。我尝试了各种各样的方法,比如
screen -t task1 0 "ssh -p 22 [email protected]"
screen -t task1 0 bash "ssh -p 22 [email protected]"
但它似乎不起作用。
答案1
您的问题是引用。
screen -t task1 1 "ssh foo@bar"
screen -t task2 2 bash "ssh foo@bar"
第一行将尝试执行名为“ ”的命令,ssh foo@bar
而不是将其拆分成单词;尝试不使用引号。
第二行将指示 bash 执行名为“ ssh foo@bar
”的脚本,而不是将其解析为命令;这需要标志-c
:
screen -t task1 1 ssh foo@bar
screen -t task2 2 bash -c "ssh foo@bar"
要测试到底发生了什么,请将 screenrc 中的命令粘贴到交互式会话中。假设命令字符是默认的,请尝试^a:
获取与屏幕命令行等效的内容。
^a:screen -t task1 2 "ssh foo@bar"
.. 应该会给你错误信息
Cannot exec 'ssh foo@bar': No such file or directory