在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