Cygwin命令替换不起作用

时间:2018-02-22 12:28:09

标签: bash sed cygwin

我正在尝试解决在Cygwin中运行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')

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

我做错了什么?

2 个答案:

答案 0 :(得分:1)

事实证明,有一个已知的“Dodgy Apps' 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必须有一些低级别的东西会导致它失败。

答案 1 :(得分:0)

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

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