0

我已经苦苦挣扎了两个小时来弄清楚我的这个脚本的问题。当我在没有任何变量的情况下静态使用它时,它会获取 grep 结果,但是当我将它们与这些变量一起使用时,我一直收到错误并且没有结果。我相信我无法处理的特殊字符转义有问题。

我有这个结构的文件 FLAGS_IN :

automotive_susan_s dataset1 -funsafe-math-optimizations -fno-guess-branch-probability -fno-ivopts  -fno-inline-functions  -fno-omit-frame-pointer  -fselective-scheduling -fno-inline-small-functions -fno-tree-pre -ftracer -fno-move-loop-invariants

在 AppName 和 dataset$j 中具有上述结构的 i 标志。谁能帮我弄清楚我的 sh 脚本的这一部分有什么问题?

GCC_OPT="-O3"
OPT_FLAGS=$("grep $i\ dataset$j\ $FLAGS_IN|sed\ s/$i\ dataset$j//g")
echo $GCC_OPT
echo $OPT_FLAGS
echo "found the validated flags, they are \n $GCC_OPT $OPT_FLAGS"
make -f Makefile.gcc -j4 CCC_OPTS="$GCC_OPT\ $OPT_FLAG"
4

2 回答 2

1

你的引用有点过分热心。此外,它在cut这里使用起来比sed.

OPT_FLAGS=$(grep "$i dataset$j" FLAGS_IN | cut -d " " -f3-)

make -f Makefile.gcc -j4 CCC_OPTS="$GCC_OPT $OPT_FLAG"
于 2013-09-20T17:50:31.793 回答
1

这是你想要做的:

$ cat file
foo
automotive_susan_s dataset1 -funsafe-math-optimizations ...
bar

$ i=automotive_susan_s
$ j=1

$ sed -n "s/$i dataset$j//p" file
 -funsafe-math-optimizations ...
于 2013-09-21T14:45:03.197 回答