【问题标题】:Is it possible to run source-cmd via node?是否可以通过节点运行 source-cmd?
【发布时间】:2018-08-10 20:35:11
【问题描述】:

嗨,是否可以通过节点运行“source ./.bash_file”? 尝试使用 electron-app 创建一个小工具来创建 ssh-alias,但无法更新 bash-file 以使新别名可用于终端。

谢谢

【问题讨论】:

    标签: node.js terminal command


    【解决方案1】:

    是的,您可以使用 child_process.spawn()child_process.exec() 获取 bash 脚本。

    但是我相信它不会像你期望的那样工作。

    这是因为,虽然spawn 创建了一个新进程,它还在该进程中启动了一个新的 shell,您的脚本将在其中获取,然后在新生成的时候被杀死过程结束。

    如果您只需要新生成的 shell 上下文中可用的脚本结果,则可以创建一个新脚本,该脚本首先获取 bash_file,然后在同一脚本的其他位置使用对当前运行的 shell 所做的任何更改。

    假设:

    bash_script.sh 包含

    #!/bin/bash
    export FOO=1 # exports new FOO variable into currently running shell
    

    test_bash_script.sh 包含

    #!/bin/bash
    source ./bash_script
    echo $FOO
    

    在当前的 shell 中,你

    $ chmod +x test_bash_script.sh
    

    然后

    $ test_bash_script.sh      # => will echo '1' to stdout
    $ echo $FOO                # => echoes nothing
    

    第二行没有回显任何内容,因为 FOO 仅在 bash_script.shtest_bash_script.sh 中可用。

    【讨论】:

    • 哇,这就是我所说的合格答案。我会试一下!谢谢!
    猜你喜欢
    • 2019-10-25
    • 1970-01-01
    • 1970-01-01
    • 2023-01-25
    • 2014-12-03
    • 1970-01-01
    • 1970-01-01
    • 2018-08-04
    • 2018-08-24
    相关资源
    最近更新 更多