gpt4 book ai didi

linux - 在 bash 脚本中传递标志失败

转载 作者:太空宇宙 更新时间:2023-11-04 11:19:37 27 4
gpt4 key购买 nike

我在 bash 中有一个构建脚本,它执行如下操作:

if [[ $DEBUG ]]; then
MAKE_CMD="$MAKE_CMD $DEBUG_FLAGS"
fi

$DEBUG_FLAGS 被初始化为:

DEBUG_FLAGS="GDB_FLAG='-g' OTHER_CFLAGS='-O0 -g'"

然后我就用 $MAKE_CMD 来编译代码。该脚本无需将 DEBUG_FLAGS 添加到原始 make 命令即可运行,但添加标志会导致问题。如果我使用相同的调试标志手动输入 $MAKE_CMD,它也会起作用。我唯一可以推断的是我的报价是错误的,这导致了问题。你看我的引文有什么问题吗?

最佳答案

ma​​ke.sh:

#!/bin/bash

MAKE_CMD="make -f bash.mak"
DEBUG_FLAGS="GDB_FLAG='-g' OTHER_CFLAGS='-O0 -g'"

if [[ $DEBUG ]]; then
MAKE_CMD="$MAKE_CMD $DEBUG_FLAGS"
fi

eval $MAKE_CMD

bash.mak:(注意制表符和空格!)

all:
echo $(GDB_FLAG)
echo $(OTHER_CFLAGS)

命令行示例:

$ DEBUG=true ./make.sh
echo -g
-g
echo -O0 -g
-O0 -g

关于linux - 在 bash 脚本中传递标志失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19096210/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com