美文网首页
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