一、shell脚本调用js脚本,以及传参
1、js代码
// 打印所有参数
console.log('打印所有参数:');
process.argv.forEach((index, value) => console.log(index, value));
// 获取传递的参数
var cp1 = process.argv[2];
var cp2 = process.argv[3];
console.log('打印传递的参数: ' + cp1 + ' ' + cp2);
2、shell代码
appid="id123"
appname="小程序"
# 执行js并传参数
node miniprogram.js $appid $appname
3、调用shell脚本,将shell中参数传递给js
sh test.sh
4、打印传递的参数
└─[0] <git:(master✈) > sh test.sh
这是 miniprogram.js
打印所有参数:
/usr/local/bin/node 0
/Users/wxq/Desktop/testjs/miniprogram.js 1
id123 2
小程序 3
打印传递的参数: id123 小程序
在这里可以看到所需的参数值位于索引2和3上。
二、js脚本调用shell脚本,以及传参
1、js代码
// Nodejs下引入模块child_process实现调用shell
var child = require('child_process');
let appid = 'id123'
let appname = "小程序"
let command = 'bash ./test.sh ' + appid + ' ' + appname
// 调用shell脚本并传参数
child.exec(command, function(err, sto) {
// sto才是真正的输出
console.log('sto: ' + sto);
})
2、shell代码
echo "从js中获取的参数为:$1 $2"
3、调用js脚本,将js中参数传递给shell
node miniprogram.js
4、打印传递的参数
└─[0] <git:(master✈) > node miniprogram.js
sto: 从js中获取的参数为:id123 小程序
三、js脚本中调用终端命令
let command1 = 'ls'
let command2 = '/usr/local/bin'
let command3 = 'git pull'
let command4 = 'npm list'
let command5 = 'node -v'
import shell from 'shelljs'
shell.exec('pwd')
shell.exec(command1)
shell.exec('open ' + command2)
shell.exec(`open "${command2}"`)
shell.exec(command3)
shell.exec(command4)
shell.exec(command5)
Demo地址:js-shell-intercall