我想在makefile中确定Intel Fortran编译器的版本,因此我添加了一些脚本,使用
GNU公司
shell
测试功能如下,
VERIFORT := $(shell ifort --version)
#VERIFORT := $(shell ifort --version | grep ^ifort) # error occurred too
.PHONY: test
test:
echo $(VERIFORT)
如果复制上面显示的代码行,请确保在
echo
命令
这给了我一些错误
/bin/sh: -c: line 0: syntax error near unexpected token `('
当我运行命令时
ifort --version
或
ifort --version | grep ^ifort
在终端中,它给出了正确的结果,并且没有发生错误。
我的系统:64位CentOS 7
感谢您的纠正建议。
[编辑]
添加更多输出详细信息:
使用
grep
版本
VERIFORT
这个
make
命令生成以下结果,
echo ifort (IFORT) 18.0.2 20180210
/bin/sh: -c: line 0: syntax error near unexpected token `('
/bin/sh: -c: line 0: `echo ifort (IFORT) 18.0.2 20180210'
make: *** [test] Error 1
[已解决]
结果是
回响
-使用问题
如@MadScientist所述
我想你需要引用
VERIFORT公司
变量,以便shell不会解释特殊字符。
引用
VERIFORT公司
变量产生以下结果(
格雷普
版本)
echo 'ifort (IFORT) 18.0.2 20180210'
ifort (IFORT) 18.0.2 20180210
并且没有发生错误。
我还使用
回响
在终端中
echo ifort (IFORT) 18.0.2 20180210
产生了同样的错误
bash: syntax error near unexpected token `('