在我的项目中,我有一组从源代码构建的程序:
SRC_FILES = $(wildcard $(SRC_DIR)/*.cpp)
TARGETS = $(patsubst $(SRC_DIR)/%.cpp,$(BIN_DIR)/%,$(SRC_FILES))
我的构建目标很简单,并且工作正常:
all: $(TARGETS)
@echo "- Done target $@"
现在,我需要一个run
目标,以便所有这些程序都可以根据请求从shell运行。比如说,如果我有3个文件,我想让make自动运行:
>$ ./test1
>$ ./test2
>$ ./test3
或者
>$ ./test1 && ./test2 && ./test3
我试过了:
run: $(TARGETS)
$(addsuffix && ,$(TARGETS))
生成以下命令:
./test1&& ./test2&&
但由于尾随&&
(当然,我希望这些可以自动生成,因为可以有3 ...或30。)
修改:实际上,&&
分隔符不是必需的,所以像这样:
>$ ./test1; ./test2; ./test3;
也会没事的。
答案 0 :(得分:2)
required_frame = driver.find_element_by_xpath('//iframe[@role="presentation"][@class="x-component x-window-item x-component-default"]')
driver.switch_to_frame(required_frame)
附近有一些.PHONY
行与
Makefile
你可能有
.PHONY: all run
但这是一个肮脏的把戏。
也许你想将 run: $(TARGETS)
$(addsuffix && ,$(TARGETS)) true
的输出产生到test2
然后你可能
test2.out
答案 1 :(得分:1)
作为Basile Starynkevitch完全正确答案here的替代方案,还有(至少)两个其他选项。
你可以避免运行一个不必要的命令(虽然可能是内置的)来通过手动拉出第一个条目来结束列表(这实际上可能比内置的shell更昂贵)。
run: $(TARGETS)
$< $(addprefix &&,$(wordlist 2,$(words $^),$^))
我认为一个更好的选择,假设用&&
连接命令不是必需的,可以使用$(foreach)
来生成要运行的命令。
run: $(TARGETS)
$(foreach t,$^,$t;)
;
中的尾随$(foreach)
是至关重要,因为;
的输出是一行,您需要lib.theMenuMobile = HMENU
lib.theMenuMobile {
entryLevel = 0
excludeUidList = 2,3,5,6,7,48,49,53,54,55
1 = TMENU
1 {
wrap = <ul>|</ul>
expAll = 1
NO = 1
NO {
wrapItemAndSub = <li class="uppermobilelink">|</li>
stdWrap.htmlSpecialChars = 1
ATagTitle.field = title
ATagBeforeWrap = 1
ATagParams = href="#" class="submenu-toggle mldisabled"
linkWrap = |<i class="fa fa-plus"></i>
}
}
2 < .1
2.wrap = <ul class="submenu">|</ul>
2.NO {
ATagTitle.field = subtitle
ATagParams = href="#" class="submenu-toggle"
linkWrap = |<i class="fa fa-plus"></i>
wrapItemAndSub = <li>|</li>
}
3 < .2
}
来终止每个shell命令(或者它)被视为一个带参数的长命令。)