- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Node.JS 编写一个简单的脚本,我想获取在终端当前 session 中运行的上一个命令的历史记录。
我正在使用函数child_process.execSync但它没有按预期工作。
这是我在网上找到的一个例子,它工作正常:
var execSync = require('child_process').execSync;
var out = execSync('ls');
console.log(out);
process.stdout.write(out);
这是输出:
<Buffer 4c 49 43 45 4e 53 45 0a 52 45 41 44 4d 45 2e 6d 64 0a 69 6e 64 65 78 2e 6a 73 0a 6f 62 73 6f 6c 65 74 65 2e 6a 73 0a 70 61 63 6b 61 67 65 2e 6a 73 6f ... >
LICENSE
README.md
index.js
package.json
test.txt
但是,如果我尝试运行 history,我会得到一个空字符串(我当前正在使用 zsh)
var execSync = require('child_process').execSync;
var out = execSync('history');
console.log(out);
process.stdout.write(out);
这是输出:
<Buffer >
这是因为命令实际上是在不同的环境中启动的吗?
我尝试使用不存在的命令,但看到以下错误:
/bin/sh: hist: command not found
child_process.js:1382
throw err;
^
Error: Command failed: hist
/bin/sh: hist: command not found
看起来它正在使用/bin/sh,我认为它可能与我的错误有关......
谢谢!
最佳答案
历史记录
是 builtin command ,您必须使用命令调用 zsh
可执行文件才能获得所需的结果( how to call history from shell scipt )
var out = execSync("zsh -c 'export HISTFILE=~/.zsh_history; fc -R; fc -l 20'");
但是您也可以只读取 ~/.zsh_history
文件并解析它
关于javascript - 为什么 child_process.execSync 的输出为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31765374/
.bat文件为:。在命令提示符下运行cmd/c a.bat将打开记事本窗口。并且在关闭窗口之前打印Foobar。我可以在不关闭记事本的情况下运行下一个命令。。但是,在node.js child_pro
有一段时间以来,我一直在尝试达成一些目前对我来说还行不通的事情。 对于 nodejs,我喜欢运行交互式 sh-command 并在命令退出后使用 sh-command 输出。我喜欢编写一个可生成的生成
我正在使用 Node.js 下的 Bluebird Promise 库,非常棒!但我有一个问题: 如果您查看 Node 的文档 child_process.exec和 child_process.ex
此代码适用于 Windows 和 Mac OS X: var exec = require( 'child_process' ).exec exec( 'git clone git@github.co
我在MacOS和Linux中使用node.js v0.10.12时遇到了这个错误,这段代码在 Windows 7 中工作正常。唯一的区别是在 Windows 7 上我有管理员 ID,在 MacOSX
我在 Electron 项目中使用 npm 库“child_process”来捕获带有 spawn 的 C 程序的标准输出流。但是,当我尝试记录 child.stdout.on('data') 捕获的
在 atom-text-editor 插件开发中,我运行一个 child_process,如 cp = require 'child_process' command = "python /home/
我正在尝试在我的 Node 脚本中创建一个虚拟 bash,它从另一个用户上下文中执行命令。 var spawn = require('child_process').spawn; var termin
我有一个在 electron 中运行的 angular2 webpack 项目。我正在尝试使用 shelljs 但 webpack 无法构建并出现错误: [0] ERROR in ./~/shellj
React Native v0.23.0 Node v5.11.0 Windows 10 10586(我在 OSX 上尝试并得到相同的错误) 我尝试在React Native中编写var cp = r
try { var output = child_process.execSync(cmd); } catch (ex) { return 0 } return output.toSt
我正在尝试使用 node.js 执行一堆 bash 命令。我使用 child_process.exec 来执行命令。 var child_process = require('child_proces
这个问题在这里已经有了答案: How to print both to stdout and file in C (4 个答案) Writing to both stdout & a file (7
我正在使用 child_process 运行最终调用的脚本 ssh -t server "sudo command" 我回来了: Pseudo-terminal will not be allocat
我正在尝试在 Node 中执行一个子进程,其名称来自发布请求。我使用的是express,因此是app.post()。我的代码如下。 app.post('/*', function(req, res)
我需要验证 child_process 是否已成功终止,因为如果该进程仍然存在,我将无法执行下一步操作。 var proc = require('child_process'); var prog =
我正在尝试使用目标设备启动 cordova 命令。我已经测试了该命令并且它有效,但是当我尝试用我的代码生成它时,它忽略等号,因此不会运行。此代码确实可以工作,只是不添加 "--target='iPho
我正在使用 exec() 运行终端命令以在 electron mac 应用程序中显示对话框。 我使用的代码: var exec = require('child_process').exec; var
如何在 node.js 上生成此命令 (/usr/bin/which flac): var spawn = require('child_process').spawn; var cmd = spaw
我正在尝试 execute a child在不同的目录中处理,然后是其父目录。 var exec = require('child_process').exec; exec( 'pwd',
我是一名优秀的程序员,十分优秀!