如何从 shell 脚本中检测命令解释器?

如何从 shell 脚本中检测命令解释器?

可能的重复:
如何测试我在终端中使用的 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。您正在寻找当前首选的外壳吗?

相关内容