Bash Cygwin命令替换不工作
我试图解决在Cygwin中运行bash命令时遇到的一个问题 我试图将文本文件中的铿锵版本分配给变量。如果我在Cygwin中运行此命令:Bash Cygwin命令替换不工作,bash,sed,cygwin,Bash,Sed,Cygwin,我试图解决在Cygwin中运行bash命令时遇到的一个问题 我试图将文本文件中的铿锵版本分配给变量。如果我在Cygwin中运行此命令: $(sed-n1p“$CLANGC2_VERSION_FILE”| sed's/\s//g') 我得到这个输出(这正是我想要的): 14.10.25903 现在,如果我试着把它赋给一个变量,它就不起作用了。以下是我正在尝试的: $CLANGC2_VERSION=$(sed-n1p“$CLANGC2_VERSION_文件”| sed's/\s//g') 但当我检查
$(sed-n1p“$CLANGC2_VERSION_FILE”| sed's/\s//g')
我得到这个输出(这正是我想要的):
14.10.25903
现在,如果我试着把它赋给一个变量,它就不起作用了。以下是我正在尝试的:
$CLANGC2_VERSION=$(sed-n1p“$CLANGC2_VERSION_文件”| sed's/\s//g')
但当我检查或打印变量时,它是空的
我做错了什么?您可以使用倒勾来获得所需的结果
CLANGC2_VERSION=`(sed -n 1p "$CLANGC2_VERSION_FILE" | sed 's/\s//g')`
事实证明,有一个已知的“大量狡猾的应用程序”(BLODA)可以干扰Cygwin和bash 我发现的讨论如下: BLODA列表如下: 原来我的防病毒软件在名单上
我已经移除了AV,现在命令可以工作了。AV肯定有一些低级的东西导致它失败。你缺少双引号了吗?Try
CLANGC2_VERSION=“$(sed-n 1p“$CLANGC2_VERSION_FILE”| sed's/\s//g')”
在我的Linux机器上尝试时无法重现此问题。。请发布输入文件的前两行。。此外,您不需要两次呼叫sed。。请尝试sed-n'1s/\s//gp'
@bernatpedrovozmediano双引号会导致相同的问题@Sundeep文件内容是14.10.259031
如果只运行TVAR=$(echo“test”);echo$TVAR
?TVAR中是否存储了任何内容?请使用od-c$CLANGC2_VERSION_文件
检查文件中是否存在任何异常字符。我尝试了反勾号,这相当于$()
,但我也遇到了同样的问题。很有趣。它在我的安装上运行良好(实际上是双向的)。您的Cygwin安装/环境有什么不典型的地方吗?我想唯一不同的是,我正在将Cygwin下载到构建工具目录中,作为安装脚本的一部分。我使用powershell下载Cygwin安装程序,然后启动Cygwin安装程序,并向其传递所需的软件包文件。只是好奇而已。哪个是AV?