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但同样的问题仍然适用
也许有其他方法可以做到这一点,我只需要使用我传递的文件的环境变量作为我的脚本的参数.
<<:YAML中的运算符可用于将一个映射的内容导入另一个映射,类似于**Python中的双splat运算符或...JavaScript中的对象解构运算符.例如,
foo:
a: b
<<:
c: d
e: f
Run Code Online (Sandbox Code Playgroud)
相当于
foo:
a: b
c: d
e: f
Run Code Online (Sandbox Code Playgroud)
当与节点锚一起使用时,这在许多对象中包含一些常见的默认属性时很有用,例如,在Y分钟中学习YAML教程:
Run Code Online (Sandbox Code Playgroud)# Anchors can be used to duplicate/inherit properties base: &base name: Everyone has same name foo: &foo <<: *base age: 10 bar: &bar <<: *base age: 20
但是,我对这种语法的来源或工作原理感到困惑.CTRL+ F荷兰国际集团的YAML规范的<<显示,它不规范的任何地方出现.然而,它至少得到了PyYAML和http://yaml-online-parser.appspot.com/的支持.
这个语法是什么,为什么它似乎没有出现在规范中?