在 Bash 脚本中使用 Grep 获取代码库版本



>假设我写了一个bash脚本,其中我提到了我的代码库的版本。在设置下说.php)。现在我想要一个 bash 脚本,它将获取另一个 bash 脚本中提到的代码库版本,在这种情况下我如何使用"Grep"命令。我已经尝试过,但没有成功。请帮忙。

grep是一个

行匹配工具。它将输出整行,在其中找到匹配的子字符串。但是在脚本bash你可以从中读取输出,但使用 read 只会给你整个grep输出的最后一行。例如,如果grep "version"的输出是:

version:1.1.1
module_version:0.1.2

然后read只会捕获最后一行module_version:0.1.2,而不是第一行。

假设您的文件中有第 version:1.1.1 行 .在 bash 脚本中你可以做

cat your_file | grep 'version'
read LINE

那会给你可变的LINE="version:1.1.1"。然后,您将需要解析生成的字符串。但是由于我不确定字符串的格式是什么,因此我无法为您提供如何解析它的确切代码。

在获得更多详细信息后,这里是合适的解决方案:

db_version=$(cat $portal_codebase_version/sites/default/settings.php | grep "$GLOBALS['sdm_version']" | sed -n -e "s/^[^=]*= '[^ ]* (.*)';$/1/p")

这给你

$ echo $db_version 
3.8.0.4
$

相关内容

  • 没有找到相关文章

最新更新