使用grep查找/剪切功能代替源代码以在bash中加载配置文件

dbmitch

我有一个正在使用的脚本,该脚本通过source命令加载所有配置变量简单,快速,有效。但是我知道这不是一个非常安全的选择。

我读过我可以使用$include指令来达到相同的结果。那是不是比source它们更安全或更基本相同?

作为最后的选择,如果以上两个选项都不安全,那么我试图理解lookup我在Shell脚本书中找到函数。它基本上使用grep,分隔符和cut从文件中执行变量名称查找并检索值。这似乎很安全,我可以用它来修改脚本。

它几乎按原样工作。我想我只需要将定界符从$ TAB更改为“ =”,但是我不确定它是如何工作的,甚至不确定。

我的配置文件格式:

Param=value

示例功能(摘自注释)

lookup() {
   grep "^$1$TAB" "$2" | cut -f2
}

用法:

lookup [options] KEY FILE
-f sets field delimiter
-k sets the number of field which has key
-v specifies which field to return

我正在使用Debian版本的Raspbian Jessie Lite,以防语法问题。

阿努巴瓦

而不是grepcut你应该考虑使用awk,可以做到基于容易给定的分隔符搜寻和剪切操作:

lookup() {
   key="$1"
   filename="$2"

   awk -F= -v key="$key" '$1 == key{print $2}' "$filename"

   # use this awk if = can be present in value part as well
   # awk -v key="^$key=" '$0 ~ key && sub(key, "")' "$filename"
}

这可以称为:

lookup search configfile.txt

-F==awk命令一样设置定界符

还要注意,$1$2里面的单引号是列#1和#2和一个不应该与位置shell变量相混淆$1$2等等。

您应该调查一下getopts以使其接受-f-k等等类型的参数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在CodeIgniter模型中加载配置文件

来自分类Dev

从配置文件中剪切IP地址

来自分类Dev

如何在Spring中使用@ImportResource批注从类路径中加载多个配置文件

来自分类Dev

如何在Spring中使用@ImportResource批注从类路径中加载多个配置文件

来自分类Dev

如何在PowerShell ISE中加载配置文件?

来自分类Dev

在Rails引擎中加载多个配置文件

来自分类Dev

如何在PowerShell ISE中加载配置文件?

来自分类Dev

bash配置文件,从其他文件加载配置

来自分类Dev

使用RequireJS加载多个配置文件

来自分类Dev

如何从外部R代码文件中加载功能列表?

来自分类Dev

从bash使用openssl备用配置文件?

来自分类Dev

使用 bash 脚本编辑配置文件

来自分类Dev

带有从 bash 中的函数加载的数组的配置文件

来自分类Dev

如何使用自动加载器加载PHP配置文件

来自分类Dev

如何在Digital Ocean的源代码管理中包含nginx和gunicorn配置文件?

来自分类Dev

NuGet软件包添加的配置文件是否应在源代码管理中?

来自分类Dev

NuGet软件包添加的配置文件是否应在源代码管理中?

来自分类Dev

如何在基于XML的Spring配置文件中加载基于Java的SecurityConfig?

来自分类Dev

如何在ember.js项目中加载配置文件?

来自分类Dev

如何在Codeigniter中加载外部配置文件以进行分页

来自分类Dev

在Visual Studio for iOS配置文件中加载证书时,如何解决错误?

来自分类Dev

在Windows上的Tor Chrome中加载Selenium用户配置文件

来自分类Dev

如何在Codeigniter中加载外部配置文件以进行分页

来自分类Dev

更新配置文件功能

来自分类Dev

使用sed在配置文件中查找和更改信息

来自分类Dev

如何在源代码中查找功能

来自分类Dev

如何使用.xinitrc加载xmodmap配置文件

来自分类Dev

Bash学习-配置文件

来自分类Dev

Bash学习-配置文件

Related 相关文章

  1. 1

    在CodeIgniter模型中加载配置文件

  2. 2

    从配置文件中剪切IP地址

  3. 3

    如何在Spring中使用@ImportResource批注从类路径中加载多个配置文件

  4. 4

    如何在Spring中使用@ImportResource批注从类路径中加载多个配置文件

  5. 5

    如何在PowerShell ISE中加载配置文件?

  6. 6

    在Rails引擎中加载多个配置文件

  7. 7

    如何在PowerShell ISE中加载配置文件?

  8. 8

    bash配置文件,从其他文件加载配置

  9. 9

    使用RequireJS加载多个配置文件

  10. 10

    如何从外部R代码文件中加载功能列表?

  11. 11

    从bash使用openssl备用配置文件?

  12. 12

    使用 bash 脚本编辑配置文件

  13. 13

    带有从 bash 中的函数加载的数组的配置文件

  14. 14

    如何使用自动加载器加载PHP配置文件

  15. 15

    如何在Digital Ocean的源代码管理中包含nginx和gunicorn配置文件?

  16. 16

    NuGet软件包添加的配置文件是否应在源代码管理中?

  17. 17

    NuGet软件包添加的配置文件是否应在源代码管理中?

  18. 18

    如何在基于XML的Spring配置文件中加载基于Java的SecurityConfig?

  19. 19

    如何在ember.js项目中加载配置文件?

  20. 20

    如何在Codeigniter中加载外部配置文件以进行分页

  21. 21

    在Visual Studio for iOS配置文件中加载证书时,如何解决错误?

  22. 22

    在Windows上的Tor Chrome中加载Selenium用户配置文件

  23. 23

    如何在Codeigniter中加载外部配置文件以进行分页

  24. 24

    更新配置文件功能

  25. 25

    使用sed在配置文件中查找和更改信息

  26. 26

    如何在源代码中查找功能

  27. 27

    如何使用.xinitrc加载xmodmap配置文件

  28. 28

    Bash学习-配置文件

  29. 29

    Bash学习-配置文件

热门标签

归档