我有以下信息的文件
文件名:的 VersionInfo.properties
Installed Version:13.7.0-2
Previous Version:13.6.0-12
FileName: rollback.sh
#!/bin/bash
uninstall_rpm ClientInfrastructure $version
如何从VersionInfo.properties文件的以前的版本获取变量 $ version 的值。 $ version的值应为 13.6.0-12
答案 0 :(得分: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)"
答案 1 :(得分:2)
version=$(awk 'END {print $2}' FS=':' VersionInfo.properties)
答案 2 :(得分:0)
Grep +参数扩展解决方案:
version=$(grep '^Previous Version:' VersionInfo.properties)
version=${version#*:}
uninstall_rpm ClientInfrastructure $version
答案 3 :(得分: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