在登录模式下运行默认shell的命令是什么?

时间:2017-11-21 04:48:46

标签: bash macos shell unix zsh

我正在测试alacritty并且它有一个配置,您可以在其中提供程序的绝对路径和shell运行的args。通常是/bin/bash -l/bin/zsh -l

问题是我想保持我的配置相同,但是我的一些机器运行bash而一些我运行zsh。所以,我想使用委托用户shell选择的标准程序。

通常这似乎是/usr/bin/login,但是当我指定这个程序时,它实际上会提示我输入用户名和密码,这远非理想。

据我所知,iTerm2确实以某种方式使用login,但其方式是不提示凭据。我想知道如何设置它。

实际上在一些quick searching上,我们发现iterm实际上实现了自己的shell启动器,因为Apple的login存在局限性。有趣。

1 个答案:

答案 0 :(得分:2)

通过解析/etc/passwd,您可以获得当前用户登录shell的绝对路径:

getent passwd $LOGNAME | cut -d ':' -f 7

您可以在配置中放置一个子shell,它将评估实际路径:

$(getent passwd $LOGNAME | cut -d ':' -f 7)