我想确定我的 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
or ifort --version | grep ^ifort
在终端中,它给出了正确的结果并且没有发生错误。
我的系统:64位CentOS 7
感谢任何更正建议。
[EDIT]
添加更多输出详细信息:
随着grep
的版本VERIFORT
, the 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
[SOLVED]
原来是一个echo
- 使用问题正如@MadScientist 提到的
我认为你需要引用的价值VERIFORT
打印时变量,以便 shell 不解释特殊字符。
引用VERIFORT
变量产生以下结果(grep
版本)
echo 'ifort (IFORT) 18.0.2 20180210'
ifort (IFORT) 18.0.2 20180210
并且没有发生错误。
我也使用它进行了测试echo
在终端中
echo ifort (IFORT) 18.0.2 20180210
哪个产生了相同的错误
bash: syntax error near unexpected token `('