答案1
这很简单:
ssh [email protected] 'bash -s' < local_bash_script.sh
执行脚本后,local_bash_script.sh
ssh-session 将立即关闭。
更新。
如果您想在 ssh 登录后在远程服务器上执行某些操作,只需创建 sshrc
文件即可。创造在远程服务器上 rc
用户.ssh
目录中的文件:
touch ~/.ssh/rc
使用您最喜欢的文本编辑器打开文件,例如nano
:
nano ~/.ssh/rc
并复制/粘贴脚本文件的内容:
#/bin/sh
date
whoami
uname -r
exit 0
每次登录期间都会执行脚本(将date
, whoami
,替换uname -r
为您的命令)。
该脚本~/.ssh/rc
将为文件所在目录rc
的所有者的明确用户执行。如果您希望rc
为远程服务器上的所有用户执行脚本,请创建另一个全局sshrc
文件:
/etc/ssh/sshrc
就这样。
答案2
在您的~/.bashrc
.
SSH_CLIENT
以防万一,您可以检查/的值SSH_TTY
来检测您是否通过 ssh 连接。
if [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then ... ; fi
查看如何检测 shell 是否由 SSH 控制?更多细节
答案3
你可以看看我的回答这里。
由于我使用 iTerm2,我想出了:
你也可以有一个像这样的脚本~/test.py
#!/usr/local/bin/python3
print("echo hello world")
然后在 iTerm2 菜单 Session->Run Co-Process 中将该脚本作为协进程执行,并将该脚本指定为~/test.py
我认为有必要使您的脚本可执行(尽管我没有尝试过其他方式)chmod +x ~/test.py
,.
快乐编码!