Cygwin 命令替换不起作用

Cygwin Command Substitution not Working

我正在尝试解决在 Cygwin 中 运行ning bash 命令时遇到的问题。

我正在尝试将文本文件中的 CLang 版本分配给变量。如果我在 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')

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

我做错了什么?

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

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

原来有一个已知的 'Big List of Dodgy Apps' (BLODA) 可以干扰 Cygwin 和 bash。

我找到的讨论在这里:https://cygwin.com/ml/cygwin/2017-07/msg00197.html BLODA 列表在这里:https://cygwin.com/faq/faq.html#faq.using.bloda

原来我的 AntiVirus 在列表中。

我删除了 AV,现在命令可以使用了。 AV 一定有一些 low-level 的东西导致它失败。