在 mac os 中为当前目录中的所有命令设置 ENV 变量

在 mac os 中为当前目录中的所有命令设置 ENV 变量

有没有办法在预定义一些 ENV 变量的情况下运行当前目录中的所有命令?

我需要的示例:

我将一些文件放在.env我的目录中,内容如下:

export SECRET='abcd123'

然后我运行一些命令,比如说rails c,但实际上它应该作为运行SECRET='abcd123' rails c。当然,当我从另一个目录运行命令时,不应该使用这个 ENV 变量。

答案1

在您的主目录中编辑.bashrc并添加以下功能:

function dosecret()
{

    [ -f ./.env ] && source ./.env
    $*
    unset SECRET
}

进行试运行source .bashrc

如果当前目录中有一个 .env 文件,则读取该文件(其中SECRET定义了变量)。然后运行该命令($*),命令完成后,SECRET将取消设置该变量。

相关内容