我在 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,但大多数示例都使用了-P
macOS 上不可用的标志。
答案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=}"
据我所知,我在这里使用的所有东西都是便携式的。