繁体   English   中英

有没有办法在 makefile SHELL 声明中获取 shell 脚本?

[英]Is there a way to source a shell script in the makefile SHELL declaration?

假设我写:

SHELL:=/usr/bin/env bash

commands:
  source sourceme.sh && alias

但我想将该source sourceme.sh sourceme.sh 推回到SHELL声明中:

SHELL:=/usr/bin/env bash -c "source sourceme.sh" # or something along these lines

可以做到这一点,如果可以,怎么做?

不,你不能那样做。 Make 将您的食谱行有效地发送到$(SHELL) -c <recipeline>不幸的是,shell 不接受多个-c选项,因此要执行您想要的操作,您需要有一种方法来制作在每个配方行的开头插入该字符串,但没有办法做到这一点。

您可以通过编写自己的包装器,从 makefile 外部自己完成:

$ cat wrapper.sh
#!/usr/bin/env bash
shift
source sourceme.sh
eval "$@"

$ cat Makefile
SHELL := wrapper.sh

commands:
        alias

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM