首页 > 解决方案 > 在 bash 中配置配置文件

问题描述

我的问题如下:

例如,假设我有 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/jt8146SUBPATHSUBPATHSUBPATHwhitecatblackcat

所以完整的路径看起来像/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 cat1blackcatto variablecat2等等。

print语句是来自我正在使用的另一个应用程序的内置命令,它从指定路径检索信息。该print语句正在运行,信息在配置文件中但未分配,这就是我需要帮助的内容。

我的问题是:

1)一旦已经填充了配置的内容,如何将变量分配给它?

2) 是否有关于堆栈溢出的类似问题有人可以指出我回答我未能找到的上述问题?

标签: bash

解决方案


IIUC,您有一个名为的文件config,如下所示:

cat1="whitecat"
cat2="blackcat"

现在你想要有变量cat1并且分别cat2whitecatblackcat值。您可以通过采购配置文件来做到这一点:

$ . config
$ echo $cat1
whitecat
$ echo $cat2
blackcat

(请注意,$这里是一个命令行提示符 ,用于指示新行的开始,而不是命令的一部分)。

.在 Bash 和其他执行sourcing的 shell 中作为命令,这意味着读取作为参数给出的文件并将其中的每一行作为 shell 命令执行。


推荐阅读