使用bash从文本文件中提取变量的值

Sav*_*rio 2 bash

我正在使用 Linux 和 bash。我有一个简单的文本文件,如下所示:

VAR1=100
VAR2=5
VAR3=0
VAR4=99
Run Code Online (Sandbox Code Playgroud)

我想通过 bash 提取 VAR2 的值,即 5。

我怎么能那样做?

noa*_*oad 8

假设该文件名为 vars.txt

sed -n 's/^VAR2=\(.*\)/\1/p' < vars.txt
Run Code Online (Sandbox Code Playgroud)

您可以在其他地方使用该值,就像这样使用单反引号

echo VAR2=`sed -n 's/^VAR2=\(.*\)/\1/p' < txt`
Run Code Online (Sandbox Code Playgroud)


vis*_*985 5

最简单的方法可能是使用source或简单.地读取和执行文件。这适用于您的示例,因为变量值中没有空格。否则,您需要使用 grep + cut 或 awk,如其他答案中所述。

. /path/to/your/file
echo $VAR2
Run Code Online (Sandbox Code Playgroud)

[编辑] 如 dawg 所述,这将使脚本中的其他变量也可用,并可能覆盖现有变量。