bash
好的,所以我可以用、sh
、 或等编写一个 shell 脚本。zsh
我可以在文件顶部放置一个 hashbang,如下所示:
#!/usr/bin/env bash
这将告诉内核使用哪个解释器来执行该文件。
然而,我刚刚意识到,我不知道如何告诉机器在命令行使用哪个解释器。
例如,如果我写:
$ foo bar baz
在命令行中,我如何知道正在使用什么解释器来解释该命令?我如何告诉计算机使用特定的解释器?
希望问题是清楚的。
答案1
获取您的登录 shell,这很可能是您当前正在运行的 shell,除非您故意选择了不同的 shell(例如,通过在终端模拟器的首选项中选择除登录 shell 之外的 shell,或者通过显式调用 shell在登录时,例如使用ssh remote-host /path/to/shell
):
echo $SHELL
要使用不同的外壳:
exec /path/to/shell
例如:
exec /bin/bash