TL; DR:如何将一组键/值对从文本文件导出到shell环境中?
为了记录,下面是问题的原始版本,带有示例.
我正在用bash编写一个脚本,用于解析某个文件夹中包含3个变量的文件,这是其中之一:
MINIENTREGA_FECHALIMITE="2011-03-31"
MINIENTREGA_FICHEROS="informe.txt programa.c"
MINIENTREGA_DESTINO="./destino/entrega-prac1"
Run Code Online (Sandbox Code Playgroud)
该文件存储在./conf/prac1中
我的脚本minientrega.sh然后使用以下代码解析文件:
cat ./conf/$1 | while read line; do
export $line
done
Run Code Online (Sandbox Code Playgroud)
但是当我minientrega.sh prac1
在命令行中执行时,它不会设置环境变量
我也试过使用,source ./conf/$1
但同样的问题仍然适用
也许有其他方法可以做到这一点,我只需要使用我传递的文件的环境变量作为我的脚本的参数.
我在windows上运行npm并且想在运行脚本中使用&style并行操作但是在cmd中并行运行在我的package.json文件中有点乱 - 我想写 -
脚本:{"go":"cmd1&cmd2"}
但是npm执行cmd.exe下的脚本,该脚本不知道; 我可以将其更改为脚本:{"go":"bats/bat1.bat")其中bat1.bat是一个cmd bat文件,它使用windows样式调用或启动命令来并行运行命令.哪个有效,但给了我一个仅适用于Windows的脚本
如果我可以让npm在bash克隆或cygwin下运行脚本我会尝试配置:{"shell":"bash"}但是仍然运行cmd.exe会简单得多
有没有办法告诉npm使用特定的shell(而不是cmd.exe)运行脚本?
我有一个名为的秘密密钥API_KEY
,我想访问package.json
's的内部scripts
。
{
"scripts": {
"start": "web-ext run --api-key=API_KEY"
}
}
Run Code Online (Sandbox Code Playgroud)
我的.env
文件包含API_KEY
:
API_KEY=abc123
Run Code Online (Sandbox Code Playgroud)
API_KEY
我如何才能访问insidepackage.json
的值,scripts
同时仍然保密,因为我需要公开推送package.json
?
目前,我执行以下操作,但不能跨平台:
{
"scripts": {
"start": "web-ext run --api-key=$API_KEY"
}
}
Run Code Online (Sandbox Code Playgroud)
当运行start
脚本时,我这样做:
API_KEY=abc123 npm start
Run Code Online (Sandbox Code Playgroud)
这要归功于 Bash 编程语言,但它不适用于 Windows。我需要$API_KEY
在start
脚本中替换为%API_KEY%
. 但我希望它是跨平台的。还有其他办法吗?