我发现自己需要登录各种服务器,设置环境变量,然后交互工作。
例如
$ ssh anvil jla@anvil$ export V=hello jla@anvil$ export W=world jla@anvil$ echo $V $W hello world
如何组合前几个命令,然后立即离开我自己?
就像是:
$ ssh anvil --on-login 'export V=hello; export W=world;' jla@anvil$ echo $V $W hello world
显然这是一个模范问题。我真正要问的是“我怎么用ssh到不同的机器,运行一些命令,然后继续,就像我用手运行一样?”
可能最简单的是:
$ ssh -t host 'cmd1; cmd2; sh -i'
如果要设置变量,请执行以下操作:
$ ssh -t host 'cmd1; cmd2; FOO=hello sh -i'
请注意,这是一个可怕的黑客,你会更好地把所需的初始命令放在脚本中,并做:
$ scp setup host:~ $ ssh host host$ . setup