在bash
您可以source
或.
在您当前的上下文中运行一些bash脚本。所以如果你有文件foo
与alias bar='echo bam'
它,当你运行它像节点脚本如何在我当前的bash上下文(进程)中运行?
$ . foo
它将源此别名从文件foo
到您当前上下文。
我知道如果我通常使用第一行像#!/usr/bin/env node
那样运行节点脚本,那么这个脚本在子shell或独立进程中运行。我想避免这种情况,并使节点脚本作用于我当前的bash进程(上下文)。
如何运行节点脚本来改变我当前的bash上下文?
ps:任何例子都不错。节点脚本只能改变我的目录,但它也必须发生在我当前的bash上下文中。
ps2:小问题:如果节点中不可能存在(而且这对我来说很难相信),或者它非常复杂,那么在其他语言中可能吗?像PHP,Java,Ruby一样(我不问C,因为它很明显:)如果是这样的话,请给我一些例子。
你可以替换你当前正在运行的程序在你的进程中使用'exec',但是你的进程会运行节点,并且bash将从进程中消失,那不是你想要的,对吧? – tkausl
这就是我不想匆匆离开的问题。我希望能够改变我当前的bash上下文,然后完成我的脚本,并且只在脚本更改时仍然处于相同的bash上下文中。 – sobi3ch