我正在尝试解决在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')
但是当我检查或打印变量时,它是空的。
我做错了什么?
答案 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')`