Makefile将变量传递给bash脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Makefile将变量传递给bash脚本相关的知识,希望对你有一定的参考价值。

我想从一个Makefile中将一个以空格分隔的引用子串字符串传递给make目标(实际上是几个不同的make目标)。目标只执行一个bash脚本,然后将每个引用的子字符串作为位置参数传递给另一个脚本。

测试Makefile

FOO="foo bar"
FOO+="bar baz"
FOO+="baz qux"
FOO+="qux"
export FOO

t:
    ./script.sh

这是script.sh

#! /bin/bash
set -ex

./thing.sh "$FOO"

这不起作用;输出(注意周围的单引号)是:

答案

这是一种解决Makefile级别问题的方法:

FOO="foo bar"
FOO+="bar baz"
FOO+="baz qux"
FOO+="qux"
export FOO

t:
    eval './script.sh $(FOO)'

这是script.sh

#! /bin/bash
set -ex

./thing.sh "$@"

这是thing.sh

#! /bin/bash
echo "$1"
echo "$2"
echo "$3"
echo "$4"

输出:

以上是关于Makefile将变量传递给bash脚本的主要内容,如果未能解决你的问题,请参考以下文章

如何将数组传递给 Bash 函数?

Bash:导出未将变量正确传递给父级

如何找到传递给 Bash 脚本的参数数量?

将 bash 变量传递给 jq

如何将 Bash 变量传递给 Python?

将bash变量传递给python命令[关闭]

(c)2006-2024 SYSTEM All Rights Reserved IT常识