Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.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变量作为参数传递给gcc_C_Bash_Shell_Gcc_Compiler Optimization - Fatal编程技术网

将bash变量作为参数传递给gcc

将bash变量作为参数传递给gcc,c,bash,shell,gcc,compiler-optimization,C,Bash,Shell,Gcc,Compiler Optimization,我的目标是将一些变量值传递给gcc。以下是我的例子: 命令: gcc -Q -fvpt -fwrapv -fwhole-program --help=optimizers -fvpt [enabled] -fwhole-program [enabled] -fwrapv [enabled] -fvpt [disabled] -fwh

我的目标是将一些变量值传递给gcc。以下是我的例子:

命令:

gcc -Q -fvpt -fwrapv -fwhole-program --help=optimizers 
-fvpt                       [enabled] 
-fwhole-program             [enabled] 
-fwrapv                     [enabled] 
-fvpt                       [disabled] 
-fwhole-program             [disabled] 
-fwrapv                     [disabled] 
输出:

gcc -Q -fvpt -fwrapv -fwhole-program --help=optimizers 
-fvpt                       [enabled] 
-fwhole-program             [enabled] 
-fwrapv                     [enabled] 
-fvpt                       [disabled] 
-fwhole-program             [disabled] 
-fwrapv                     [disabled] 
当我跑步时:

var="-fvpt -fwrapv -fwhole-program"; gcc -Q $(var) --help=optimizers 
输出:

gcc -Q -fvpt -fwrapv -fwhole-program --help=optimizers 
-fvpt                       [enabled] 
-fwhole-program             [enabled] 
-fwrapv                     [enabled] 
-fvpt                       [disabled] 
-fwhole-program             [disabled] 
-fwrapv                     [disabled] 
为什么不工作?

$(var)
尝试执行命令
var
,并在命令行中使用其输出。要在bash中展开变量,可以使用
$var

var="-fvpt -fwrapv -fwhole-program"; gcc -Q $var --help=optimizers 

var=“-fvpt-fwrapv-fwhole program”&&gcc-Q$var--help=优化器应该适合您。

您应该使用数组而不是平面字符串来存储多个选项。(例如,字符串可以工作,但对于本身包含空格的参数,它将失败;对于包含模式元字符的选项,它可能失败。)


非常感谢。var=“-fvpt-fwrapv-fwhole程序”;gcc-Q$var--help=optimizers这是正确的,但是您也可以用弯曲的括号替换括号
{}
${var}
的工作原理与
$var
类似。