【问题标题】:Script in repo requires different shell-script headers for different computersrepo 中的脚本对不同的计算机需要不同的 shell 脚本头文件
【发布时间】:2018-02-16 15:17:37
【问题描述】:

我使用nixos,我的 bash 路径是/run/current-system/sw/bin/bash,因此我需要一个 shell-script 标头

#!/run/current-system/sw/bin/bash

我的同事使用 macOS,他们需要更标准的 shell-script 标头

#!/bin/bash

在我们的 git 存储库中有一些脚本,为了在我的机器上运行我们的存储库,我对其进行了更改。我目前通过大量使用git stash 来处理这个问题。有什么更好的方法?

可能有一些 git 功能可以以某种方式切换这些更改,设置 repo 以在我的机器上使用,我很想听听。也很想听听我如何编辑脚本以在两种类型的机器上保持不变。

【问题讨论】:

  • #!/usr/bin/env bash ?这应该可以在 NixOS / macOS / 其他系统之间移植。
  • @ppb 要求 /run/current-system/sw/bin/ 在 PATH 中,但其他方面非常好的解决方案。

标签: git shell nixos


【解决方案1】:

您可以使用以下方法解决此问题:

#!/usr/bin/env command

但您需要注意,使用这种方法的主要缺点是它会调用您的$PATH 返回的第一个<command>

例如,如果使用

#!/usr/bin/env python

它可以返回 python2 或 python3,这取决于您的 $PATH 首先返回什么。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多