问题:
当我尝试打开任何 shell 脚本时,会生成一个新窗口,该窗口会立即退出。文件.bash_profile
和.bashrc
ahelloworld.sh
是经过测试的示例。
有趣的是,运行open helloworld.sh
输出:
Jake:~ jakebanks$ /Users/jakebanks/helloworld.sh; exit;
Hello World!
logout
这似乎表明它执行成功。echo ${PIPESTATUS[0]}
(在第一个窗口中)的输出是0
。
配置:
最近,我将默认终端更改为 iTerm2,这是我记得在出现此问题之前所做的最新更改。
- 默认文本编辑器是 Sublime Text 2。
- 默认 shell 是 bash。
- FWIW,这个问题与终端无关。
内容为.bash_profile
(目前):
PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
export PATH
.bashrc 的内容:
#!/bin/bash
#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
export SDKMAN_DIR="/Users/jakebanks/.sdkman"
[[ -s "/Users/jakebanks/.sdkman/bin/sdkman-init.sh" ]] && source "/Users/jakebanks/.sdkman/bin/sdkman-init.sh"
我尝试过的:
- 更换外壳
- 成功打开非 shell 脚本文件(例如文本文件)
- 在终端和 iTerm2 中将配置文件重置为其默认值
解决方案:
事实证明,我对如何从终端调用 shell 脚本感到困惑。该命令实际上应该是sh helloworld.sh
, 而不是open helloworld.sh