I often use Eshell to connect to remote systems. On those remote systems I sometimes want to run scripts in the current working directory. In a regular terminal I'd type this:
./my-script.sh
Unfortunately, inside of Eshell this won't work:
~ $ cd /remote1:~
/ssh:remote1:/home/rekado $ ./my-script.sh
env: /ssh:remote1:/home/rekado/my-script.sh: No such file or directory
/ssh:remote1:/home/rekado $
It only works if I provide the complete TRAMP path to the script:
/ssh:remote1:/home/rekado $ /ssh:remote1:/home/rekado/my-script.sh
It works!
/ssh:remote1:/home/rekado $
Is there a way to convince Eshell to expand .
automatically such that the simpler invocation just works?
As a workaround I currently use a function bound to C-c .
that inserts the current full path on the command line. I'd much prefer to have .
just behave as expected.