![如何从 shell 脚本中检测命令解释器?](https://linux22.com/image/22794/%E5%A6%82%E4%BD%95%E4%BB%8E%20shell%20%E8%84%9A%E6%9C%AC%E4%B8%AD%E6%A3%80%E6%B5%8B%E5%91%BD%E4%BB%A4%E8%A7%A3%E9%87%8A%E5%99%A8%EF%BC%9F%20.png)
可能的重复:
如何测试我在终端中使用的 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。您正在寻找当前首选的外壳吗?