
我最近主要使用 Manjaro 和 Arch,但我正在尝试在 Mint 上调试一些可能的硬件问题。
我有许多 bash 脚本在 mint 中不再工作,因为它们以 开头#!/usr/bin/bash
,但 Mint 的 bash 位于/bin/bash
。有没有办法合并某种重定向而不必更改我的所有脚本?
例如,我为开始练习而编写的第一个脚本就是这样:
#!/usr/bin/bash -x
cmatrix -bC red
删除该/usr
部分可以让它在 Mint 中正常运行,但是有没有办法保留相同的脚本并在两个发行版中运行它?
答案1
Stack Overflow 上有相关的 Q&A,参见首选的 Bash shebang 是什么?,但我在这里找不到好的。
如果您希望脚本在、、等bash
上的任何位置找到,请使用PATH
/bin
/usr/bin
#!/usr/bin/env bash
(这假设/usr/bin/env
存在。)
但在大多数 Linux 发行版上,包括您提到的发行版,它都可以安全使用
#!/bin/bash
一些发行版还有/usr/bin/bash
,但这就是结果“/usr
合并”-/bin
现在/usr/bin
这些发行版中具有相同的内容。
答案2
以下将需要进行一次更改。 #!/usr/bin/env bash
将在您的 PATH 中搜索 bash。不过您必须set -x
单独进行此操作。