如何循环处理字符串并删除字符串数组

时间:2018-09-13 07:24:54

标签: linux unix makefile gnu-make gnu

我在Response.Redirect("/machinery?MachineLocation=" + searchstring); 文件中有以下代码,该代码来自命令字符串数组

make

该命令返回类似apps := $(shell fxt run apps) go: @for v in $(apps) ; do \ echo inside recipe loop with sh command: $$v ; \ done 的数组(其中可能有许多应用程序) 但是我需要将它设为[app1 app2 appN],知道如何删除数组app1 app2 appN吗?

我跑步时得到以下信息

[]

1 个答案:

答案 0 :(得分:1)

您可以简单地将subst命令与空的替换部分一起使用,以删除变量内容的部分,如下所示:

apps := $(shell ls)

#add []
apps := [ $(apps) ]
$(info Apps: $(apps))

# replace [ with nothing -> remove it
apps := $(subst [ ,,$(apps))

# replace ] with nothing -> remove it
apps := $(subst ],,$(apps))
$(info Apps: $(apps))

或将filer-out用于:

apps :=$(filter-out [ ], $(apps))

代替两个替换功能。重要提示:在space之间保持filter-out,因为Apps: [ a b c Makefile ] Apps: a b c Makefile 需要单词列表。因此,这里的命令模式部分有2个字。 输出:

[

如果输入的subst与第一个单词之间没有空格,则必须使用 apps := $(subst ],,$(subst [,,$(apps))) 命令。

也许您想将两个表达式合并为一个(但可读性较差):

exec()