无法在 gnu make 中将错误重定向到 /dev/null
Unable to redirect error to /dev/null in gnu make
在 gnu 脚本中,我想检查路径中是否有 intel c 编译器。
为此,我 运行 以下命令:
COMPILER_IN_PATH := $(shell icc -dumpversion | grep 2021.3.0)
稍后我测试一下是否设置了COMPILER_IN_PATH。
如果路径中有英特尔编译器,则上述命令可以正常工作。
但是,如果英特尔编译器不在路径中,虽然上述命令有效(COMPILER_IN_PATH 不会被设置),但当此行为 运行 时,我在输出中看到以下错误消息:
/bin/sh: icc: command not found
我想删除该错误消息。如何在将标准输出读入 COMPILER_IN_PATH 变量时将 stderr 重定向到某处(我想是 /dev/null)?
以下是我的一些失败尝试:
icc -dumpversion | grep 2021 > /dev/null 2>&1
Ambiguous output redirect.
icc -dumpversion | grep 2021 2> /dev/null
icc: Command not found.
grep: 2: No such file or directory
您正在重定向 grep
命令的输出。您想要重定向 icc
命令的输出。
COMPILER_IN_PATH := $(shell icc -dumpversion 2>/dev/null | grep 2021.3.0)
在 gnu 脚本中,我想检查路径中是否有 intel c 编译器。 为此,我 运行 以下命令:
COMPILER_IN_PATH := $(shell icc -dumpversion | grep 2021.3.0)
稍后我测试一下是否设置了COMPILER_IN_PATH。
如果路径中有英特尔编译器,则上述命令可以正常工作。 但是,如果英特尔编译器不在路径中,虽然上述命令有效(COMPILER_IN_PATH 不会被设置),但当此行为 运行 时,我在输出中看到以下错误消息:
/bin/sh: icc: command not found
我想删除该错误消息。如何在将标准输出读入 COMPILER_IN_PATH 变量时将 stderr 重定向到某处(我想是 /dev/null)?
以下是我的一些失败尝试:
icc -dumpversion | grep 2021 > /dev/null 2>&1
Ambiguous output redirect.
icc -dumpversion | grep 2021 2> /dev/null
icc: Command not found.
grep: 2: No such file or directory
您正在重定向 grep
命令的输出。您想要重定向 icc
命令的输出。
COMPILER_IN_PATH := $(shell icc -dumpversion 2>/dev/null | grep 2021.3.0)