文件名:VersionInfo.properties
Installed Version:13.7.0-2
Previous Version:13.6.0-12
文件名:rollback.sh
#!/bin/bash
uninstall_rpm ClientInfrastructure $version
我怎樣才能得到將值變爲$版本從以前版本VersionInfo.properties文件的。 $版本應具有價值13.6.0-12
文件名:VersionInfo.properties
Installed Version:13.7.0-2
Previous Version:13.6.0-12
文件名:rollback.sh
#!/bin/bash
uninstall_rpm ClientInfrastructure $version
我怎樣才能得到將值變爲$版本從以前版本VersionInfo.properties文件的。 $版本應具有價值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
+1剛剛意識到你的答案被刪除礦:) – anubhava
@anubhava哈哈,我開始寫'awk'的解決方案,然後看到已經發布兩個版本。以'grep'開始併發布。所以'sed'是我最後的選擇。我越來越老了...並不是很快跟上這裏的每個人......) –
這只是半答案,但它沒有顯示如何在rollback.sh中使用'version'腳本。 – kojiro