我在Mac OSX上有一个脚本,在打开一个新终端时执行.它在.zprofile.中指定.它有一个bash shebang但它仍然使用zsh(我的默认shell)执行.这可能是什么问题?
#!/bin/bash
Run Code Online (Sandbox Code Playgroud)
核心问题是由于zsh语法的不同,我无法执行脚本.当我分析可能导致这种情况的原因时,我认识到shebang只是被忽略了.
我有一个二进制/ bin/bash btw.
编辑:
~/.zprofile 像这样执行脚本:
. ~/.script.bash
Run Code Online (Sandbox Code Playgroud)
你写~/.zprofile了以下这一行:
. ~/.script.bash
Run Code Online (Sandbox Code Playgroud)
这类似于
source ~/.script.bash
Run Code Online (Sandbox Code Playgroud)
这意味着您的脚本是来源而非执行.你应该有类似的东西:
~/.script.bash
Run Code Online (Sandbox Code Playgroud)
相反,它将在shebang定义的环境中执行.请注意,该文件需要是可执行的.
. file [ arg ... ]:从当前 shell环境中读取命令file并执行它们.资源:
man zshall
| 归档时间: |
|
| 查看次数: |
369 次 |
| 最近记录: |