/ bin / bash:--timeout:在macOS上找不到命令

时间:2019-01-08 12:40:56

标签: macos

我正在安装带有源代码的港口。

class SomeOtherClass(SomeClass):
  def __init__(self):
    pass

错误如下:

    ✗ make install

我试图获取coreutils并配置我的路径

    ...
    Successfully built b917c04731a3
    Successfully tagged goharbor/nginx-photon:dev
    Done.
    /bin/bash: --timeout: command not found
    make[1]: *** [_build_registry] Error 127
    make: *** [build] Error 2

2 个答案:

答案 0 :(得分:2)

编辑:

@Arne Vogel的答案更有可能指出真正的问题。

实际上,您没有命令/bin/bash是令人惊讶的(因此,我在这里描述的步骤无法解决问题)。


coresutil由最著名的命令(cat,head,tail,wc,sort ...)的GNU版本组成,因此与您的问题没有直接关系。

您可以使用brew安装bash的最新版本(第5版):

brew install bash

仔细检查您的/bin/内是否真的没有bash:

sudo ls /bin/bash

它应该返回这样的一行(注意权限):

-r-xr-xr-x  1 root  wheel  618416 Nov 30 12:55 /bin/bash

如果未返回任何结果,则可以创建一个链接:

sudo ln -s $(which bash) /bin/bash

答案 1 :(得分:1)

TBH,我不了解港口,但是此错误似乎是由脚本中的格式错误引起的,尤其是类似以下内容:

some-command --some-option --some-other-option \
  --timeout

现在,如果缺少反斜杠(以继续该行),将首先执行some-command(不带--timeout选项),然后bash将尝试执行一个名为--timeout,毫不奇怪,它不存在。

此问题也可能由反斜杠后的多余空格,流浪的分号,错误的行终止符(尤其是Windows样式的CRLF)引起。

以下是您可以做什么的一些建议:

  • 请确保您已下载适用于Mac OS X的源软件包。许多开源软件包以不同的格式分发,例如对于Windows,.zip和/或.7z,对于UNIX,.tar.gz和/或.tar.bz2。您需要后者。
  • 很明显,请查看文档和/或论坛。
  • 如果这样做没有帮助,请使用ktrace查找有问题的脚本,然后在文本编辑器中对其进行查看。如果确实在脚本中发现错误,请考虑将其报告给开发人员。