如何从BASH中的节点脚本访问返回值?

Att*_*lah 11 javascript bash node.js

假设我有一个调用节点脚本的bash脚本.我试过这样做:

b.sh文件:

#!/bin/bash
v=$(node app.js)
echo "$v"
Run Code Online (Sandbox Code Playgroud)

app.js文件:

#!/usr/bin/env node
function f() {
   return "test";
}
return f();
Run Code Online (Sandbox Code Playgroud)

如何从我的bash脚本中访问节点脚本("test")返回的值?

jm6*_*666 17

@Daniel Lizik为该部分给出了一个很好的答案(现已删除):如何输出值,例如使用他的答案:

#!/usr/bin/env node
function f() {
   return "test";
}
console.log(f())
Run Code Online (Sandbox Code Playgroud)

对于如何捕获bash中的值的部分,请完全按照您的问题执行:

#!/bin/bash
val=$(node app.js)
echo "node returned: $val"
Run Code Online (Sandbox Code Playgroud)

以上打印:

node returned: test
Run Code Online (Sandbox Code Playgroud)

  • 如果我也在该函数中使用控制台登录怎么办?我想要返回值,而不是所有控制台日志值? (9认同)

Dmi*_*nko 8

您可以将输出写入标准输出process.stdout.write

b.sh文件:

#!/bin/bash
v=$(node app.js)
echo "$v"
Run Code Online (Sandbox Code Playgroud)

应用程序.js 文件:

#!/usr/bin/env node
function f() {
  return "test";
}
process.stdout.write(f());
Run Code Online (Sandbox Code Playgroud)