Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Running additional shell startup commands



In case, you wish a ssh wrapper:

#!/bin/zsh -f
# Usage: ssh -ARG login@hostname:/go/to/directory/path

t=(${(s.:.)@[-1]})
if [ -n "${t[2]}" ]; then
    exec /usr/bin/ssh -t ${@[1,-2]} ${t[1]} "cd ${t[2]}; exec \$SHELL -l"
else
    exec /usr/bin/ssh $@
fi



2015-07-30 9:55 GMT+02:00 Dominik Vogt <vogt@xxxxxxxxxxxxxxxxxx>:

>
> > On 30 July 2015 at 07:24, Dominik Vogt <vogt@xxxxxxxxxxxxxxxxxx> wrote:
> > > Often, I ssh to another machine, and the first thing I do there is
> > > to change the working directory, e.g.
> > >
> > >   $ ssh <some machine>
> > >   $ cd ~/src/git/...
> > >
> > > I'm looking for a way to specify that in some way on the ssh
> > > command line but cannot figure out how to do that.  Zsh takes
> > > either input from stdin, or from a command specified with -c, or
> > > from a script, so things like
> > >
> > >   $ ssh <...> zsh -c 'cd ~/src/git' -s
> > >
> > > or
> > >
> > >   $ ssh <...> zsh -s <script>
> > >
> > > don't work.  The only thing I can think of would be to copy a
> > > script to the machine with scp and source that at shell startup,
> > > but that is way too much bother and too limited in application to
> > > be useful (works only if the config on the target machine is
> > > changed).
> > >
> > > (Is there a good reason why -s cannot be combined with -c or a
> > > script name anyway?)
>
> On Thu, Jul 30, 2015 at 08:45:00AM +0100, Mateusz Karbowy wrote:
> >
> http://serverfault.com/questions/167416/change-directory-automatically-on-ssh-login
>
> This does it:
>
>   $ ssh -Y <machine> -t 'cd <dir>; exec zsh -i --login'
>                     ^^^^
>
> The "-t" is important.
>
> Ciao
>
> Dominik ^_^  ^_^
>
> --
>
> Dominik Vogt
> IBM Germany
>
>


-- 
J u l i e n    J e h a n n e t


Messages sorted by: Reverse Date, Date, Thread, Author