是否可以通过节点运行source-cmd?

时间:2018-03-02 15:34:17

标签: node.js terminal command

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

由于

2 个答案:

答案 0 :(得分:2)

是的,请查看child processes。我认为exec就是你所追求的目标。

Similar stack overflow question

答案 1 :(得分:2)

是的,您可以使用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中都可用。