我需要使用执行一组Cassandra DB命令的nodeJS运行shell脚本文件。任何人都可以帮我这个
在db.sh文件中。
create keyspace dummy with replication = {'class':'SimpleStrategy','replication_factor':3}
create table dummy (userhandle text, email text primary key , name text,profilepic)
答案 0 :(得分:73)
您可以使用nodejs的“子进程”模块在nodejs中执行任何shell命令或脚本。让我举个例子,我在nodejs中运行一个shell脚本(hi.sh)。
<强> hi.sh 强>
echo "Hi There!"
<强> node_program.js 强>
const exec = require('child_process').exec;
var yourscript = exec('sh hi.sh',
(error, stdout, stderr) => {
console.log(stdout);
console.log(stderr);
if (error !== null) {
console.log(`exec error: ${error}`);
}
});
这里,当我运行nodejs文件时,它将执行shell文件,输出将是:
生成强>
node node_program.js
<强>输出强>
Hi There!
只需在exec
回调中提及shell命令或shell脚本,即可执行任何脚本。
希望这有帮助!快乐的编码:)
答案 1 :(得分:42)
您可以使用此模块https://www.npmjs.com/package/shelljs执行任何shell命令。
const shell = require('shelljs');
//shell.exec(comandToExecute, {silent:true}).stdout;
//you need little improvisation
shell.exec('./path_to_ur_file')
答案 2 :(得分:0)
此外,您可以使用shelljs
插件。
这很容易,而且是跨平台的。
安装命令:
npm install [-g] shelljs
什么是shellJS
ShellJS是Unix的可移植(Windows / Linux / OS X)实现 Node.js API之上的shell命令。你可以用它来消除 您的Shell脚本对Unix的依赖性,同时仍然保持其 熟悉而强大的命令。您也可以全局安装它,这样 您可以从Node项目外部运行它-告别那些 肮脏的Bash脚本!
其工作方式示例:
var shell = require('shelljs');
if (!shell.which('git')) {
shell.echo('Sorry, this script requires git');
shell.exit(1);
}
// Copy files to release dir
shell.rm('-rf', 'out/Release');
shell.cp('-R', 'stuff/', 'out/Release');
// Replace macros in each .js file
shell.cd('lib');
shell.ls('*.js').forEach(function (file) {
shell.sed('-i', 'BUILD_VERSION', 'v0.1.2', file);
shell.sed('-i', /^.*REMOVE_THIS_LINE.*$/, '', file);
shell.sed('-i', /.*REPLACE_LINE_WITH_MACRO.*\n/, shell.cat('macro.js'), file);
});
shell.cd('..');
// Run external tool synchronously
if (shell.exec('git commit -am "Auto-commit"').code !== 0) {
shell.echo('Error: Git commit failed');
shell.exit(1);
}
此外,您可以从命令行使用:
$ shx mkdir -p foo
$ shx touch foo/bar.txt
$ shx rm -rf foo
答案 3 :(得分:-1)
你可以去
require('./myScript.sh');
只需确保在bash脚本中添加shebang。
#! /bin/bash