可能的重复:
如何测试我在终端中使用的 shell?
我想检测 shell 脚本正在使用哪个解释器。例如以下脚本:
#!/bin/bash
issue_interpreter_name()
应该向解释者透露:
bash
答案1
#!/bin/sh
ps h -p $$ -o args='' | cut -f1 -d' '
ps
进程列表h
不打印列标题-p <PID>
仅列出进程 ID PID$$
由具有当前 PID 的 shell 替换-o args
打印命令行,没有其他信息cut
将输出分成几部分-f1
只打印第一个字段-d' '
使用空格作为字段分隔符$ ./testje
/bin/sh
答案2
如果是本地用户,/etc/passwd 的第 7 个字段就是他们的 shell。您正在寻找当前首选的外壳吗?