当我尝试执行远程命令时,为什么匆匆说“找不到命令”?[关闭]


13

当我使用drush命令在远程计算机上执行某项操作时,收到以下消息:

bash:drush:找不到命令

有什么问题?


我认为您的问题仍然是关于bash的问题,而不是Drupal本身。实际上,也与拖拉无关,因为如果不执行命令,则是拖拉,树,wget还是什么都无关紧要。而且我写时没有看到任何答案,我的意见仅基于您所问的问题。
Mołot

@Mołot:(只有那时)您知道答案了,这似乎与bash有关,因为您意识到问题的根源在于bash,但是在您知道答案之前,它看起来像消息的意思是“ bash是表示Drush表示找不到命令”。最初,Bash 似乎仅携带来自Drush的消息。当然,这并不是真正发生的事情,但是您只有知道答案后才知道。的问题,因此是一个问题,Drupal用户可以有,关于(据他们所知)Drush。的回答带来猛砸前列。
iconoclast 2014年

当我在上面发表评论时,我什至没有看到任何答案。您的问题很简单,您在询问bash无法找到命令。您引用错误行,其中bash报告找不到它。您,没有任何答题者。我的第一条评论在评论队列中,我们甚至都没有看到答案。我们甚至不看是否有任何。
Mołot

冒号的语法似乎不仅仅意味着Bash在说Drush在说...,而且就用户而言,发出了Drush命令,因此解释被称为Drush命令,而不是Drush本身。
iconoclast 2014年

1
“答案” =“解决方案”。“答案!=“答复”。在阅读任何答复之前,您已经知道了解决方案。对于每个人来说,这都不是正确的。问题必须按问题的内容而非答案的内容(或“ 答案 ”)进行分类。喜欢)。
反传统的人

Answers:


15

该消息来自远程计算机,它抱怨说它不知道在哪里可以找到drush可执行文件,而不是 Drush抱怨它找不到您可能试图给出的(子)命令,即使标点符号表明了后者。(如果bash:表示Bash向您传递了一条消息,那么它drush:应该具有相同的含义-如果存在任何一致性。但是实际上,它的意思drush:是消息的主题,而不是传递bash:给您的消息的来源。如果第二个:已删除,请更清楚。)

Drush通过ssh登录到远程计算机,但这不是正常的交互式登录,因此它不提供.bash_profile。但是,它确实提供了.bashrc文件的源。

将drush路径(不包括drush本身,仅包括包含drush的目录)添加到远程.bashrc中的PATH变量中,一切都应该很好。例如,可能看起来像这样:

PATH=$PATH:/usr/local/zend/bin

8
还要在〜/ .bashrc中注意以下内容:[ -z "$PS1" ] && return。如果在非交互模式下运行,某些平台会使用它来纾困。例如,Ubuntu将其放在您的初始.bashrc中。如果设置PATH,则需要确保先设置它,然后再设置诸如条件这样的条件,该条件可能会强制提前退出。
greg_1_anderson

3
感谢您的回答和评论。我必须在Ubuntu 14.04上的.bashrc该行之前 编辑路径# If not running interactively, don't do anything case $- in *i*) ;; *) return;; esac
Shaun Dychko 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.