指定在命令行使用哪个解释器

指定在命令行使用哪个解释器

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

相关内容