我已经切换到 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