プロジェクトごとのSSHで、あるサーバにログインした後、デプロイを行っているディレクトリに移動する、というスクリプトを書きたかったです。
$ ssh ssh.example.com -t 'cd tmp; bash --login'
cd
コマンドをssh
の引数として渡すとcd
が実行された後にssh
コマンドが終了してきて戻ってきてしまいます。
-t
オプションを付けてssh
を起動し、cd
した後に bash --login
をするとcd
が終了した後にbash
が起動され、引き続きターミナルを使うことができます。
-t
はForce pseudo-terminal allocation.
となっており、擬似端末(PTY)を強制的に割り当てるため、bash --login
がPTY上でcd
したセションが残ります。