代码之家  ›  专栏  ›  技术社区  ›  Jay8ee

Cygwin命令替换不工作

  •  2
  • Jay8ee  · 技术社区  · 7 年前

    我试图解决在Cygwin中运行bash命令时遇到的一个问题。

    我试图将文本文件中的叮当版本分配给变量。如果我在Cygwin中运行此命令:

    $ (sed -n 1p "$CLANGC2_VERSION_FILE" | sed 's/\s//g')

    我得到这个输出(这正是我想要的):

    14.10.25903

    现在,如果我尝试将其分配给一个变量,它将不起作用。以下是我正在尝试的:

    $ CLANGC2_VERSION=$(sed -n 1p "$CLANGC2_VERSION_FILE" | sed 's/\s//g')

    但当我检查或打印变量时,它是空的。

    我做错了什么?

    2 回复  |  直到 7 年前
        1
  •  1
  •   Jay8ee    7 年前

    事实证明,有一个已知的“大量狡猾的应用程序”(BLODA)可以干扰Cygwin和bash。

    我发现的讨论如下: https://cygwin.com/ml/cygwin/2017-07/msg00197.html BLODA列表如下: https://cygwin.com/faq/faq.html#faq.using.bloda

    原来我的防病毒软件在列表中。

    我已经删除了AV,现在命令正常了。AV肯定有一些低级的东西导致它失败。

        2
  •  0
  •   Patrick Kelly    7 年前

    您可以使用反勾号来获得所需的结果。

    CLANGC2_VERSION=`(sed -n 1p "$CLANGC2_VERSION_FILE" | sed 's/\s//g')`