假设我编写了一个 bash 脚本,其中我提到了我的代码库的版本。(比如在 settings.php 下)。现在我想要一个 bash 脚本,它将获取另一个 bash 脚本中提到的代码库版本,在这种情况下我如何使用“Grep”命令。我试过了,但没有成功。请帮忙。
问问题
342 次
1 回答
0
grep
是一个线匹配工具。它将输出找到匹配子字符串的整行。但是在bash
脚本中你可以从中读取输出,但是使用read
只会给你整个grep
输出的最后一行。例如,如果输出grep "version"
为:
version:1.1.1
module_version:0.1.2
然后read
将只捕获最后一行module_version:0.1.2
,而不是第一行。
假设您的文件中的案例有 line version:1.1.1
。在 bash 脚本中你可以做
cat your_file | grep 'version'
read LINE
这会给你 variable 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
$
于 2012-11-29T05:26:57.433 回答