我正在处理一个bash提示项目,该项目将对您当前所在目录中的不同状态起作用。

我现在需要的是一种从当前目录加载小型配置的方法,可以使用. .params.conf轻松完成,除了该方法非常不安全之外,因为任何对您所在目录具有写访问权的人都可以在您创建和执行命令时使用当您偶然发现其中带有.params.conf文件的目录时。

从这样的文件中加载变量的最佳方法是什么?
变量将大部分处于真/假状态,因此我不会以任何方式解析它们以便可以执行。

可能的解决方案:

  • 可以加载每个预定义变量的循环,但是我想使代码保持可读性。
  • 将整个文件放在bash数组中将是最佳解决方案,但是如何在bash中填充这样的键/值字典呢?
  • 如果bash可以仅加载变量就可以获取文件。.

  • 我不知道params.conf文件的格式如何。但我认为最简单的方法是,每个参数一行用空格隔开。像每行这样之一:key value that can have space in it

    最佳答案

    eval可以是very insecure,并且仍然可以执行恶意代码。最好使用declare:

    while read varname value
    do
        declare "$varname=$value"
    done < .params.conf
    

    关于linux - 加载不受信任的配置变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10571721/

    10-12 07:21
    查看更多