我编写了一个shell脚本来进行一些处理,并且必须操作变量。基本上,变量是这样的 -
vaa="set policy:set cli"
我的目的是根据“:”的位置将其拆分为两个变量。为了得到正确的结果,我这样做 -
vaa1=${vaa#*:}
echo ${vaa1} //this prints "set cli" which I want
但是,我无法获得字符串“set policy”的左侧部分。我试过这个 -
vaa2=${vaa%*:}
但它不起作用,我得到整个字符串 - “设置策略:设置cli”。关于如何获得左侧部分的任何想法?
答案 0 :(得分:1)
试试这个
vaa2=${vaa%:*}
echo ${vaa2}
答案 1 :(得分:1)
你需要改变你的模式
echo ${vaa#*:}
# from the beginning of the string,
# delete anything up to and including the first :
echo ${vaa%:*}
# from the end of the string,
# delete the last : and anything after it
答案 2 :(得分:1)
这是怎么做的(bash)
$ vaa="set policy:set cli"
$ IFS=":"
$ set -- $vaa
$ echo $1
set policy
$ echo $2
set cli
或读入数组
$ IFS=":"
$ read -a array <<< "$vaa"
$ echo "${array[0]}"
set policy
$ echo "${array[1]}"
set cli