gpt4 book ai didi

javascript - 如何访问shell脚本文件中的 Node JS(javascript)变量

转载 作者:行者123 更新时间:2023-12-01 03:38:39 24 4
gpt4 key购买 nike

我正在从nodeJS文件运行shell脚本文件,我需要将一些参数发送到shell脚本并在shell脚本中使用它

我的js文件

var dbname = development.db.uri;
console.log(dbname);
var myscript = exec('sh ./scripts/mongo-backup.sh'+ dbname );
myscript.stdout.on('data',function(data){
console.log("!@#$%^&*&@#$%^&*$##$%^&*")
console.log(data); // process output will be displayed here
});
myscript.stderr.on('data',function(data){
console.log(data); // process error output will be displayed here
});

这是我的 shell 脚本

#!/bin/bash
echo "Creating Database Backup"
#need to access dbname from JS FILE
MONGO_DATABASE= dbname
APP_NAME="app-name"
USERNAME=$(sudo echo $USER)

最佳答案

虽然这可能是可能的,但代码混合看起来违反直觉。我建议为dbname设置一个环境变量,两个nodejs都会使用process.env.dbname捕获它,bash脚本将使用$dbname捕获它。

如果您坚持使用当前结构,只需执行以下操作:

var myscript = exec('DB_NAME='+ dbname + ' DB_USER=' + dbuser +' sh ./scripts/mongo-backup.sh');

如果您使用的是相当现代的 Node ,则可以使用以下语法:

var myscript = exec(`DB_NAME=${dbname} DB_USER=${dbuser} sh ./scripts/mongo-backup.sh`);

并在 bash 文件中

#!/bin/bash
echo "Creating Database Backup"
MONGO_DATABASE= $DB_NAME
APP_NAME="app-name"
USERNAME=$(sudo echo $USER)

关于javascript - 如何访问shell脚本文件中的 Node JS(javascript)变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44065083/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com