2

我有以下信息的文件

文件名:VersionInfo.properties

Installed Version:13.7.0-2
Previous Version:13.6.0-12

文件名:rollback.sh

#!/bin/bash
uninstall_rpm ClientInfrastructure $version

如何从先前版本的 VersionInfo.properties 文件中获取变量$version的值。$version 的值应该是13.6.0-12

4

4 回答 4

5

sed解决方案:

version=$(sed -n 's/Previous Version:\(.*\)/\1/p' VersionInfo.properties)

要在脚本中使用它,您可以执行以下操作:

#!/bin/bash
version=$(sed -n 's/Previous Version:\(.*\)/\1/p' VersionInfo.properties)
uninstall_rpm ClientInfrastructure "$version"

如果这就是您的脚本中的全部内容,那么您基本上可以在命令行上执行此操作。

uninstall_rpm ClientInfrastructure "$(sed -n 's/Previous Version:\(.*\)/\1/p' VersionInfo.properties)"
于 2013-07-11T15:54:52.907 回答
2
version=$(awk 'END {print $2}' FS=':' VersionInfo.properties)
于 2013-07-11T15:51:25.720 回答
0

grep + 参数扩展解决方案:

version=$(grep '^Previous Version:' VersionInfo.properties)
version=${version#*:}
uninstall_rpm ClientInfrastructure $version
于 2013-07-11T15:52:17.067 回答
0

如果文件是这样写的,您只需要$version正确导出变量。

version=$(awk -F: '/Previous Version/{print $2}') ./rollback.sh

如果您真的想更改 的内容rollback.sh,请使用 ed:

ed rollback.sh <<< ",s/\$version/$(awk -F: '/Previous Version/{print $2}')/
w" # w must be on newline
于 2013-07-11T15:52:25.423 回答