#shell #cli #system-info #infer-shell

whattheshell

推断应用程序当前运行的shell

3个稳定版本

1.1.0 2024年1月15日
1.0.1 2023年7月24日
1.0.0 2023年7月23日

320 in Unix APIs


goup中使用

MIT许可证

9KB
187 代码行

whattheshell

这个crate尝试提供一个简单解决方案来解决一个简单的问题:“我在哪个shell中运行?”

通过使用 Shell::infer(),尝试通过检查给定环境来推断当前使用的shell。

在Unix系统中,通过检查 ps -o ppid,comm {pid} 的输出,来查找进程的父进程,直到找到shell进程。在非Unix系统中,使用相同的算法,但通过crate sysinfo 的帮助。

示例

use whattheshell::Shell;

fn main() {
    let shell = Shell::infer().unwrap();
    println!("{shell}"); // -> "zsh"
}

致谢

此实现受到了Schniz/fnm(见fnm/src/shell)中shell infer实现的极大启发和影响。

依赖

~1–1.8MB
~38K SLoC