【问题标题】:Can I use GNU make's SHELL variable to connect to a remote shell?我可以使用 GNU make 的 SHELL 变量连接到远程 shell 吗?
【发布时间】:2012-07-09 14:13:49
【问题描述】:

我正在进行的一个项目使用 gnu make 进行测试。我想在没有 make 实现但有 POSIX shell 的平台上进行测试。

是否可以创建一个脚本(最好在 python 中)可以“缝合”一个远程 shell 来制作,并将其放入 make 的 SHELL 环境变量中?

如果没有,还有其他人可以想到的方法吗?

【问题讨论】:

    标签: testing gnu-make


    【解决方案1】:

    有可能。

    创建一个将命令转发到远程主机的脚本。例如:

    #!/bin/bash
    shift # remove -c argument
    exec ssh remote_host "$@"
    

    并使其可执行 (chmod +x)。

    然后在 Makefile 中:

    SHELL := './my_shell.sh'
    all :
        @echo `hostname` is making $@
    

    输出:

    $ make
    remote_host.peer1.net is making all
    

    【讨论】:

    • 谢谢!这似乎有潜力。但是,环境变量呢? IIRC,make 将一些转移到 shell(例如当前工作目录)。有什么好方法可以知道哪些环境变量会传递?
    • 所有环境变量都变成了make变量。 ssh 虽然不会将环境变量传输到远程主机。请改用命令行参数。
    • 所以这些变量没有传递给shell?连PWD之类的东西都没有?
    • make 产生的进程继承所有环境变量。 ssh默认情况下不会将环境变量传递给远程主机。 ssh 客户端和服务器必须配置为发送和接受环境变量。
    • 对我来说已经足够好了。我只会从本地环境中提取我需要的东西。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 2013-03-25
    • 1970-01-01
    • 1970-01-01
    • 2019-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多