基本上我想写一些脚本,比如
#!/bin/bash
for idx in 1 2 3 4 5 6
do
echo machine$idx
ssh machine$idx tmux new-session -d -s "myTempSession$idx" python run.py
done
它可以单独做这件事:
ssh machine$idx
tmux new-session -d -s "myTempSession$idx"
python run.py
但经过多次尝试和错误,我仍然无法使其按预期工作。
更新根据 Tagwint 的建议,我的脚本是:
#!/bin/bash
for idx in 1 2 3 4 5 6
do
ssh machine$idx <<REMSH
tmux new-session -d -s "myTempSession"
tmux send-keys -t -s "myTempSession" python Space run.py C-m
REMSH
done
但它提示:
./dist_run.sh: line 8: warning: here-document at line 4 delimited by end-of-file (wanted `REMSH')
./dist_run.sh: line 9: syntax error: unexpected end of file
更新我修改为
#!/bin/bash
for idx in 36 37
do
ssh machine$idx <<REMSH
tmux new-session -d -s "myTempSession"
tmux send-keys -t -s "myTempSession" python Space run.py C-m
REMSH
done
这有效,但是运行脚本后,我登录machine36
并machine37
进入打开的 myTempSession,但未python run.py
执行
答案1
我建议你使用 HERE-DOC 方法
ssh machine$idx <<REMSH
tmux new-session -d -s "myTempSession$idx"
tmux send-keys -t "myTempSession$idx" python Space run.py C-m
REMSH
注意会话名称中的 $idx 部分很可能不会解析,除非您定义了 idx 环境变量,这样您将获得会话名称 myTempSession