将bash变量作为参数传递给gcc
我的目标是将一些变量值传递给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 -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
类似。