我有两个文件param.properties和readParam.sh,它们从param.properties文件中读取参数值
param.properties:
val1=a
val2=b=c;c=d
readParam.sh:
PROPERTY_FILE=p.properties
function getProperty {
PROP_KEY=$1
PROP_VALUE=`cat $PROPERTY_FILE | grep "$PROP_KEY" | cut -d'=' -f2`
echo $PROP_VALUE
}
val1=$(getProperty "val1")
echo val1 : $val1
val2=$(getProperty "val2")
echo val2 : $val2
当我运行脚本readParam.sh时,输出为:
val1:一个
val2:b
其中val2仅给出一半值(它仅给出“ b”而不是“ b = c; c = d”)
请帮助我
答案 0 :(得分:1)
只需扩展您现有的代码即可:
更改
android:launchMode="singleTop"
进入:
cut -d'=' -f2
不过,我会将您的cut -d'=' -f2-
链更改为单个awk单线:
cat|grep|cut
答案 1 :(得分:1)
PROP_VALUE=`cat $PROPERTY_FILE | grep "$PROP_KEY" | cut -d'=' -f2`
-f2将只给您基于定界符的字符串中的第二个参数。
由于在同一行中的多个位置都存在“ =”,因此它将字符串分成多个部分,当您尝试使用f2检索输出时,只会得到第二部分。
因此用来获取其余值的是第一次出现定界符之后的字符串。
PROP_VALUE=`cat $PROPERTY_FILE | grep "$PROP_KEY" | cut -d'=' -f2-`