bash - 在 bash 中配置配置文件
问题描述
我的问题如下:
- 我将打印语句的输出定向到配置文件中。
- 当 print 语句运行时,它返回多个项目。当项目输出到配置时
- 我想为每个变量分配一个变量名,以便以后可以使用它们。
- 我希望分配基于原始打印语句中使用的变量。
例如,假设我有 4 类动物:猫、狗、马和老鼠。如果打印的项目对应于 cat 变量(在 print 语句中使用),那么我希望为这些项目分配 cat1、cat2 等变量名称。这样我就可以区分不同的变量类型并有效地使用它们之后。
注意:我计划一次只用这 4 个类别之一填充配置,然后每次运行打印语句时,我都会覆盖配置文件的内容。
所以我的配置文件在分配之前看起来像这样(在执行打印语句之后)..
whitecat
blackcat
#or like this
brownhorse
greyhorse
我希望它在分配后看起来像这样..
cat1="whitecat"
cat2="blackcat"
#or like this
horse1="brownhorse"
horse2="greyhorse"
在这里作为我想做的一个例子..
print 语句使用定义为和定义为 cat、dog、horse 或 mouse的路径访问目录${MAINPATH}/${SUBPATH}
。它基于与该动物有关的信息。即如果定义为 cat 然后它将输入到配置文件信息中,例如和MAINPATH
/home/jt8146
SUBPATH
SUBPATH
SUBPATH
whitecat
blackcat
所以完整的路径看起来像/home/jt8146/cat
将此信息输出到配置文件后,我希望将信息whitecat
分配blackcat
给变量。但是,不必进入配置文件并键入分配,我希望它在信息后自动执行。获取配置文件的输出。
所以我在想我会做一个包含if
,elif
声明的函数,即if SUBPATH = cat then do assignment cat1, cat2 to each element in the config file
如果在执行此 if 语句之前配置文件如下所示
whitecat
blackcat
yellowcat
greencat
然后whitecat
将分配给 variable cat1
,blackcat
to variablecat2
等等。
该print
语句是来自我正在使用的另一个应用程序的内置命令,它从指定路径检索信息。该print
语句正在运行,信息在配置文件中但未分配,这就是我需要帮助的内容。
我的问题是:
1)一旦已经填充了配置的内容,如何将变量分配给它?
2) 是否有关于堆栈溢出的类似问题有人可以指出我回答我未能找到的上述问题?
解决方案
IIUC,您有一个名为的文件config
,如下所示:
cat1="whitecat"
cat2="blackcat"
现在你想要有变量cat1
并且分别cat2
有whitecat
和blackcat
值。您可以通过采购配置文件来做到这一点:
$ . config
$ echo $cat1
whitecat
$ echo $cat2
blackcat
(请注意,$
这里是一个命令行提示符
,用于指示新行的开始,而不是命令的一部分)。
.
在 Bash 和其他执行sourcing的 shell 中作为命令,这意味着读取作为参数给出的文件并将其中的每一行作为 shell 命令执行。
推荐阅读
- c++ - 从串行存储和提取特定数据
- r - Kruskal-Wallis 测试:为子集 data.frame 创建 lapply 函数?
- scala - Akka HTTP 客户端 - 使用 Play JSON 解组
- r - 按组折叠数据框,使用变量列表进行加权平均和总和
- spring-boot - Kubernetes 上的内存缓存
- php - 在生成器函数中使用explode来迭代PHP中的长字符串
- docker - 无法在 Windows 容器中绑定挂载卷
- java - gradle jcenter 替代或镜像
- c# - ASP.NET MVC POST 不会发回第二次出现的变量
- scala - 具有 Reactivemongo 的 Id 的案例类,应该是可选的或必需的