Node.js 如何执行脚本以从nodejs设置iterm2标记?

Node.js 如何执行脚本以从nodejs设置iterm2标记?,node.js,exec,iterm2,Node.js,Exec,Iterm2,我从Iterm2官方网站上得到了这个bash脚本 printf”\e]1337;SetBadgeFormat=%s\a“$(echo“text”| base64) 我试过像贝娄一样的exec,并没有错误,但未能设置iterm2标记 var exec=require('child_process')。exec; exec('printf“\e]1337;SetBadgeFormat=%s\a“$(echo“text”| base64)”; setBadgeFormat.js=> #!/usr/bi

我从Iterm2官方网站上得到了这个bash脚本

printf”\e]1337;SetBadgeFormat=%s\a“$(echo“text”| base64)

我试过像贝娄一样的exec,并没有错误,但未能设置iterm2标记

var exec=require('child_process')。exec;
exec('printf“\e]1337;SetBadgeFormat=%s\a“$(echo“text”| base64)”;
setBadgeFormat.js=>

#!/usr/bin/env node

var rawBadgeFormat = 'test'
var base64BadgeFormat = new Buffer(rawBadgeFormat).toString('base64')
var setBadgeFormatCmd = 'printf "\\e]1337;SetBadgeFormat=' + base64BadgeFormat + '\\a"'
require('child_process').exec(setBadgeFormatCmd, function(error, stdout, stderr) {
    if (error) console.log(error);
    process.stdout.write(stdout); // this line actually do the trick
    process.stderr.write(stderr);
});

确实很清楚您想要完成什么,但是如果您不想了解更多关于正在发生的事情,请添加一个回调exec('printf“\e]1337;SetBadgeFormat=%s\a“$(echo“text”| base64)”,函数(error,stdout,stderr){//然后是console.log})@这些东西的aray12日志只是
null
'e]1337;SetBadgeFormat=ODA4MQo=a'
''
。我发现,当将脚本放入外部文件(例如“setBadgeFormet.sh”)中,并将节点脚本修改为
exec('./setBadgeFormet.sh')
时,它可以工作!很高兴你找到了解决办法。老实说,我不知道为什么这会改变一切