node.js - 可靠地确定使用什么 shell(cmd、bash 等)来运行 node.js 脚本

标签 node.js bash shell

正如标题所述,我想确定使用什么 shell( cmdbash 或等)来运行 node.js 脚本(从脚本内部)。

使用 os 检测操作系统时模块可以提供一些线索,但在某些情况下还不够,例如我是从 bash 执行的上win32通过像 GitBash 这样的终端或Cygwin .

process 上是否有特性具有此信息的对象?

*编辑:虽然 process.env.SHELL是一个选项,它并不总是被填充,也许 undefined使用某些终端时

最佳答案

您可以使用process.env.SHELL属性来获取它,如官方文档中所示,

process.env属性返回一个包含用户环境的对象。该对象的示例如下所示:

{
  TERM: 'xterm-256color',
  SHELL: '/usr/local/bin/bash',
  USER: 'maciej',
  PATH: '~/.bin/:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin',
  PWD: '/Users/maciej',
  EDITOR: 'vim',
  SHLVL: '1',
  HOME: '/Users/maciej',
  LOGNAME: 'maciej',
  _: '/usr/local/bin/node'
}

关于node.js - 可靠地确定使用什么 shell(cmd、bash 等)来运行 node.js 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43161205/

相关文章:

linux - 给定行范围时如何使用 sed 命令从文本文件中提取内容?

bash - 使用 shell 脚本查找特定文件类型的文件

linux - 如何正确停止shell脚本?

http - 如何很好地销毁 Node.js http.request 连接?

javascript - 在 node.js 中缓存数据的最便宜的方法?

javascript - Meteor userId 存在但用户未定义

javascript - Node 数组过滤不起作用

linux - 在 bash shell 中获取圆的半径

c - Fork 永远不会进入子进程

bash - 当用反斜杠分割行时是否可以使用注释?