#12967·fish-shell

不使用 shebang 的 Python 脚本可能会卡死,因为 /bin/sh 运行了 `import` 命令。

作者: krobelus创建于 2026年9月2日更新于 2026年9月2日

正如 https://matrix.to/#/!fny2klHK6fAZn_zfrCzd22UQxWritgFAuTLtN-ZFn_I/$QU6fnHcMogIKEfof8M7aIiP3bKcIv8nnFNFKMony0yc?via=gitter.im&via=matrix.org&via=tchncs.de 中提到的,当执行不以 `#!/bin/Python` 开头的 Python 脚本时,fish 会假设为 `#!/bin/sh`。有些 Python 脚本以 `import` 开头。shell 会执行 `import`,这是一款随 imagemagick 提供的工具,它在执行任何操作之前从标准输入读取数据。这导致用户无法立即发现错误。IIRC fish 已经为 *.fish 文件禁用了此逻辑。也许我们应该对 *.py 文件也采取同样的措施。

内容来源: fish-shell/fish-shell