我有以下信息的文件
文件名: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
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)"
version=$(awk 'END {print $2}' FS=':' VersionInfo.properties)
grep + 参数扩展解决方案:
version=$(grep '^Previous Version:' VersionInfo.properties)
version=${version#*:}
uninstall_rpm ClientInfrastructure $version
如果文件是这样写的,您只需要$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