Hi, On my Windows system, I have Cygwin setup, with Emacs as part of the Cygwin installation. I also setup my Cygwin environment to use zsh. I started my Emacs from this zsh environment. I think that's where org inherited this setting. I think when org execute my block, it some how assumed that it should use the same shell at the remote end. P.S. OpenWRT is the router OS. It is just a tiny Linux. Most people would not install zsh on it :P On Fri, Sep 23, 2016 at 4:35 AM Fabrice Popineau < fabrice.popineau@supelec.fr> wrote: > My $0.02 > > As I'm using Emacs on Windows, with MSYS2+MingW64, I tried this. > There is a problem with using bash from a _native_ MingW64 Emacs: > bash is a MSYS2 app and Emacs is a MingW64 app. > > From emacs, I would have used the plink protocol, so that's what I did. > And I got this message in the *Org-Babel Error Output* buffer > > /bin/sh: 1: C:/Local/Emacs/bin/cmdproxy.exe: not found > > So I looked at ob-eval.el and the org-babel-eval function. > And there are at least 2 big problems. > 1- when entering this function, the `command' parameter is > "C:/Local/Emacs/bin/cmdproxy.exe" > 2 - the `shell-file-name' variable has the same value > So the following won't work for Windows : > ;; Unfortunately, `executable-find' does not support file name > ;; handlers. Therefore, we could use it in the local case > ;; only. > (shell-file-name > (cond ((and (not (file-remote-p default-directory)) > (executable-find shell-file-name)) > shell-file-name) > ((file-executable-p > (concat (file-remote-p default-directory) shell-file-name)) > shell-file-name) > ("/bin/sh"))) > > BTW I don't see the point concatenating shell-file-name with > default-directory when the later is remote. > Do we expect to find the shell in the remote directory ? > > Anyway, there is little chance this stuff will work under Windows with a > native Emacs. > If I find time, I may try to propose some fix. > > Fabrice > > > 2016-09-22 16:52 GMT+02:00 Nick Dokos : > >> Colin Baxter writes: >> >> >> >> #+BEGIN_SRC shell :dir /scp:openwrt:/mnt/sda1 >> >> ls -al >> >> #+END_SRC >> >> >> >> The error, I think, is from the remote end. >> >> >> >> /bin/sh: /bin/zsh: not found >> >> >> >> Clearly, I am using zsh on my Windows, but my remote OpenWRT system >> only has ash installed. Is >> >> there's way to specify the shell to use on the remote end? >> >> >> > >> > I can't help you here. I've never used openwrt. All I can suggest is to >> > search openwrt documentation or try with cgywin. >> > >> >> IIUC, openwrt is the name of the remote node - nothing to do with OpenWrt >> (except of course, that >> the remote node may be a router which has been flashed with OpenWrt, but >> that should make no >> difference to ssh/tramp). >> >> -- >> Nick >> >> >> > > > -- > Fabrice Popineau > ----------------------------- > SUPELEC > Département Informatique > 3, rue Joliot Curie > 91192 Gif/Yvette Cedex > Tel direct : +33 (0) 169851950 > Standard : +33 (0) 169851212 > ------------------------------ > > -- Thanks, David S.