比如我 shell 文件是这样,文件名是 test:
#!/bin/bash
echo bash test
我zsh test
, bash test
, source test
都正常
但是./test
它就直接卡住没有输出
这个怎么排查?只能重装系统了吗?
1
IgniteWhite 2021-10-02 20:32:26 +08:00
which bash 看看输出,然后改你的 shebang line
或者直接把 shebang ling 改成#!/usr/bin/env bash |
2
IgniteWhite 2021-10-02 20:35:15 +08:00
你用 mac 的话,用 homebrew 安装的 bash 本来就不在 /bin/bash,应该是 /usr/local/bin/bash 。无论如何,shebang line 换成#!/usr/bin/env bash 都比较方便
|
3
bombless OP 喔我重启过后就没事了……
不知道发生了什么 我用 /bin/bash 是因为 /bin/zsh 和 /bin/bash 本来就是系统预装的位置 说真的反而是 env 的位置在 mac 和 linux 中不同 我反而感觉 /bin/sh 稳一点 |
5
IgniteWhite 2021-10-02 22:23:40 +08:00
@bombless mac 也是有 /usr/bin/env 的,尽管 homebrew 安装 coreutils 之后会带一个 env 。
|
7
bao3 2021-10-03 01:13:41 +08:00 via iPhone
还是用 sh 吧,标准的 posix,在哪都能用
|