美文网首页
Shell和JavaScript相互调用,以及相互传参

Shell和JavaScript相互调用,以及相互传参

作者: wuyukobe | 来源:发表于2023-04-09 21:15 被阅读0次

一、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上。
shell调用js

二、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调用shell

三、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

相关文章

网友评论

      本文标题:Shell和JavaScript相互调用,以及相互传参

      本文链接:https://www.haomeiwen.com/subject/wfnbddtx.html