我希望在 .profile 中创建以下脚本,以便每个 SSH 会话都能直接进入其位置:
- 检查指定主机 (user@host)。
- 如果主机 = host1 -- cd /var/www/site1
ETC。
帮助! :)
答案1
答案2
您的问题不清楚:您是否通过多个别名访问同一台主机?您是否访问共享 的不同主机.profile
?您是否尝试根据源主机名或目标主机名执行命令?
如果希望在不同的远程主机上获得不同的效果,只需测试远程主机名:
case "$(hostname)" in
host1) cd /var/www/site1;;
esac
如果你希望在同一台主机上实现不同的效果,可以SendEnv
使用~/.ssh/config
发送环境变量(假设你正在使用OpenSSH客户端)。这些需要通过AcceptEnv
在服务器端执行指令,但通常情况并非如此。但是LC_*
变量通常允许通过,因此您可以使用它们传递信息。在客户端,运行LC_VIRTUAL_HOST=site1 ssh common-host.provider.com
。在.profile
服务器上,写入
case "$LC_VIRTUAL_HOST" in
host1) cd /var/www/site1;;
esac