3个稳定版本
1.1.0 | 2024年1月15日 |
---|---|
1.0.1 | 2023年7月24日 |
1.0.0 | 2023年7月23日 |
320 in Unix APIs
在goup中使用
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