Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何在CMake宏中的命令内运行命令_Bash_Shell_Cmake_Ctest - Fatal编程技术网

Bash 如何在CMake宏中的命令内运行命令

Bash 如何在CMake宏中的命令内运行命令,bash,shell,cmake,ctest,Bash,Shell,Cmake,Ctest,我想把文件内容变成一个参数。参数转到正在测试的可执行文件。这就是我所拥有的 ADD_TEST ( NAME ${ARGV0} COMMAND ${DIR}/script.sh ${executable}\ --arg1\ input ) 我想将参数放入一个文件中,并将其作为输入提供给可执行文件。我想要这样的东西: ADD_TEST ( NAME ${ARGV0} COMMAND ${DIR}/script.sh

我想把文件内容变成一个参数。参数转到正在测试的可执行文件。这就是我所拥有的

ADD_TEST (
    NAME ${ARGV0}
    COMMAND
        ${DIR}/script.sh
        ${executable}\ --arg1\ input
)
我想将参数放入一个文件中,并将其作为输入提供给可执行文件。我想要这样的东西:

ADD_TEST (
    NAME ${ARGV0}
    COMMAND
        ${DIR}/script.sh
        ${executable}\ $(cat ${ARGS_file})
)
还是像这样

ADD_TEST (
    NAME ${ARGV0}
    COMMAND
        ${DIR}/script.sh
        ${executable}\ `cat ${ARGS_file}`
)
ADD_TEST (
    NAME ${ARGV0}
    COMMAND
        ${DIR}/script.sh
        ${executable}\ $(< ${ARGS_file})
)
还是像这样

ADD_TEST (
    NAME ${ARGV0}
    COMMAND
        ${DIR}/script.sh
        ${executable}\ `cat ${ARGS_file}`
)
ADD_TEST (
    NAME ${ARGV0}
    COMMAND
        ${DIR}/script.sh
        ${executable}\ $(< ${ARGS_file})
)

以上三种代码都不起作用。当我在CMake之外试用时,效果很好。但是在CMake内部,它们不起作用。

对于更一般的方法,请使用execute\u命令、fileWRITE,然后使用include。

CMake不使用shell来计算参数。如果您想要这种行为,并且您确信您只在linux上操作,您可以尝试这样的操作:命令bash-c${executable}$cat${ARGS_file}像这样,评估将再次传递给bash。