我需要在我的xml文件的version
属性值中添加内部版本号:
<widget id="com.test.enterprise.operationsnew" version="2.4.2.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
在我的bash脚本中,我尝试过:
BUILD_NUMBER=1
VERSION="$(xmllint \
-xpath 'string(//*[local-name()="widget"]/@version)' config.xml | \
cut -f1-3 -d.)"
CFBundleVersion="${VERSION}.${BUILD_NUMBER}"
sed -i '' \
-e 's#version="[0-9].[0-9].[0-9].[0-9]"#version="${CFBundleVersion}"#g' \
config.xml
CFBundleVersion
变量确实已插入但未解析:
<widget id="com.test.enterprise.operationsnew" version="${CFBundleVersion}" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
如何使用sed正确执行此操作?
答案 0 :(得分:1)
sed -e 's#version="[0-9].[0-9].[0-9].[0-9]"#version="'${CFBundleVersion}'"#g' config.xml
在变量周围添加单引号以展开它。