通过从另一个文件中提取文本来设置 Bash 文件中的变量

通过从另一个文件中提取文本来设置 Bash 文件中的变量

我在 macOS 上。

这是我的源文件:

#!/bin/bash

version=42

o_ver=$version
let "version+=1"
echo Compiling version $version up from $o_ver

# . . . many more lines

我想提取版本号(42在本例中)并使用它来设置r_ver以下 bash 脚本中的变量:

#!/bin/bash

r_ver= ??

我尝试使用 grep,但大多数示例都使用了-PmacOS 上不可用的标志。

答案1

以下命令提取以(可能缩进)sourcefile开头的行:version=

<sourcefile grep '^[[:blank:]]*version='

要仅获取第一行,请通过管道传输到head -n 1(如果可能还有更多匹配的行,则这很重要):

<sourcefile grep '^[[:blank:]]*version=' | head -n 1

您的新脚本应将上述命令的输出分配给一个变量。该变量将保存为version=42。然后您需要摆脱version=. 最终片段:

r_ver="$(<sourcefile grep '^[[:blank:]]*version=' | head -n 1)"
r_ver="${r_ver#*version=}"

据我所知,我在这里使用的所有东西都是便携式的。

相关内容