有没有办法在预定义一些 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
将取消设置该变量。