有点奇怪的问题:当我这样做时,一切正常:
ssh abc@myurl
drush -v
但像这样它失败了:
ssh abc@myurl "drush -v"
它产生:
: No such file or directorysh/drush: line 10: cd: /cygdrive/c/ProgramData/Drush
/drush.phpopen input file: .
完全相同的命令,只是不能作为内联命令工作,这是我编写这个东西所需要的。是的,涉及cygwin,所以不知道这是否相关,希望不是。
知道如何使第二种形式起作用吗?其他命令工作正常,例如:
ssh abc@myurl "cd /cygdrive/c/mydrupaldir; pwd"
[编辑]为了简单起见,我缩小了重现的步骤,我还发现了失败的原因:drush 对 cygwin 有特殊处理,它依赖于它uname -a
来确定,这就是关键区别:
ssh abc@myurl
uname -a
产生:
CYGWIN_NT-6.1 MYURL 1.7.28(0.271/5/3) 2014-02-09 21:06 x86_64 Cygwin
但是这个:
ssh abc@myurl "uname -a"
产生:
Server 4.0 windows32 MYURL 2.6.1 7601 ix86-pc AMD unknown MinGW
我已经通过对脚本的硬编码更改解决了我的直接问题,但现在的问题是,为什么 uname 在这两种情况下会给出不同的结果?