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但同样的问题仍然适用
也许有其他方法可以做到这一点,我只需要使用我传递的文件的环境变量作为我的脚本的参数.
在node.js项目上使用新的VSCode编辑器.我试图通过编辑launch.json文件来配置我的"启动"配置文件以进行调试.我需要将connectionstring设置为环境变量.根据launch.json文件中的注释:
// Environment variables passed to the program.
"env": { }
Run Code Online (Sandbox Code Playgroud)
我试过像这样添加我的环境变量:
"env":
{
"CONNECTION_STRING": "Data Source=server;Initial Catalog=catalog;User ID=uid;Password=pwd;MultipleActiveResultSets=true"
}
Run Code Online (Sandbox Code Playgroud)
当我尝试启动我的应用时,这会导致错误; "OpenDebug进程意外终止".我还没有找到任何可能解释问题的日志文件等.
我知道当我设置环境变量并从标准命令提示符启动我的应用程序时,此应用程序正常工作.如果我在launch.json文件中注释掉我的变量,应用程序也会按预期运行; 我只是无法连接到数据库.
我假设我在launch.json文件中使用了错误的格式,但我还没有找到任何方法来使这项工作.
有任何想法吗?
你可以帮助我,如何在visual studio代码中设置环境变量?
根据文档,可以在调试之前启动程序:
要在每个调试会话开始之前启动任务,请将其设置为tasks.json中指定的任务之一
preLaunchTask的名称.
我没有看到"命名"任务的示例语法,但架构文档显示了一个名为的属性taskName.我尝试使用它将我的launch.json链接preLaunchTasks到任务,但它没有用.当我启动我的程序时,Visual Studio Code报告了此错误:
无法找到一个独特的任务'launch-core'.确保该任务存在且它具有唯一的名称.
我的自定义"命名"任务看起来像这样:
{
"taskName": "launch-core",
"version": "0.1.0",
"command": "C:\\utils\\mystuff.exe",
// The command is a shell script
"isShellCommand": true,
// Show the output window only if unrecognized errors occur.
"showOutput": "silent",
}
Run Code Online (Sandbox Code Playgroud)
然后我试图更改属性的名称taskName,只是name,基于此链接.这也行不通.
Intellisense没有提供如何命名任务的建议.
有人知道如何在tasks.json文件中唯一地命名任务吗?语法是什么?什么是物业名称?
最终我想在我自己的node.js应用程序启动之前执行两个或三个node.js进程.例如,我想在我的应用程序启动到调试器之前启动以下三个应用程序:
sh -c 'cd ./manager/ && node manager.js'
sh -c 'cd ./adapter/ && node adapter.js'
sh -c 'cd ./core/ && node core.js'
Run Code Online (Sandbox Code Playgroud)
如果我正在使用Windows机器,我的任务可能如下所示: …
我正在尝试tasks.json在vscode.
在我的launch.json文件中,我有以下代码来解析 .env 文件:
"configurations": [
{
...
"envFile": "${workspaceFolder}/.env",
}
]
Run Code Online (Sandbox Code Playgroud)
然后我在文件中包含tasks.json此任务:
{
"label": "login",
"command": "sh",
"type": "shell",
"args": [
"${workspaceFolder}/etc/login.sh",
"${env:USERNAME}",
"${env:PASSWORD}"
]
}
Run Code Online (Sandbox Code Playgroud)
这似乎是https://code.visualstudio.com/docs/editor/tasks隐含的代码,但是(通过在另一个任务中回显进行测试)我发现最后两个args是空白的。经过在线研究后,我想我找到了原因,它们configurations..env是由它们tasks自己使用的,而不是由task.json运行访问的,因此无法访问。
我如何env variables在 中创建(使用)这些tasks.json?