Return 从 node.js 到 sh 脚本的变量

Return variable from node.js to sh script

是否可以从 .sh 脚本执行 node.js 应用程序,return 一些变量并继续 .sh 脚本? 类似于:

#!/bin/sh
SOME_VARIABLE = node app.js
echo ${SOME_VARIABLE}

首先,确保您使用的是 bash,而不是 sh,因为两者在功能上存在显着差异。

一个简单的解决方案是命令替换,但请注意命令输出中的尾随换行符将被删除。此外,回显时,为了保护变量的内容(例如空格和 glob 字符)免受 shell 的元处理,您必须将其双引号:

#!/bin/bash
output=$(node app.js);
echo "$output";

另一个解决方案是 bash 的更新版本中的进程替换。在这种情况下,您甚至可以将输出收集为行数组:

#!/bin/bash
exec 3< <(node app.js);
lines=();
while read -r; do lines+=("$REPLY"); done <&3;
exec 3<&-;
echo "${lines[@]}";