在 zsh 中,如何运行为 bash 编写的脚本

在 zsh 中,如何运行为 bash 编写的脚本

我已经切换到 zsh,如何运行为 bash 编写的脚本?

由于脚本是版本控制的,我不想修改脚本并将 #!/bin/bash 放在脚本开头。

还有其他方法吗?

有问题的脚本行是:

for f in `/bin/ls v/*/s.sh v/*/*/v.sh d/*/*/v.sh 2> /dev/null`

答案1

您可以使用 bash 手动运行该脚本:

bash myscript.sh

一个更好更持久的解决方案是添加一个 shebang 行:

#!/usr/bin/env bash

添加该行后,您可以直接运行它,即使在 ZShell 中也可以运行它:

% ./myscript.sh

就版本控制而言,您应该提交此行,以造福所有相关开发人员。

答案2

除了@neersighted评论的解决方案之外,您还应该确保您的bash脚本具有在中运行的执行权限zsh。 因此,您应该首先使用shabang设置bash脚本的第一行:

#!/usr/bin/env bash

然后运行:

% chmod +x myscript.sh

提供此类权限。然后您可以zsh按如下方式运行它:

% ./myscript.sh

相关内容