CUS_PRODUCT_VER=`echo V${CUS_PRODUCT_VER:0:1}.${CUS_PRODUCT_VER:1:1}.${CUS_PRODUCT_VER:2:1}.${CUS_PRODUCT_VER:3:1}` 换一个写法
时间: 2024-03-10 08:46:46 浏览: 17
可以使用以下方式将 CUS_PRODUCT_VER 格式化为 Vx.x.x.x 的形式:
```
CUS_PRODUCT_VER=$(printf "V%s.%s.%s.%s" ${CUS_PRODUCT_VER:0:1} ${CUS_PRODUCT_VER:1:1} ${CUS_PRODUCT_VER:2:1} ${CUS_PRODUCT_VER:3:1})
```
其中 `${CUS_PRODUCT_VER:0:1}` 表示从 CUS_PRODUCT_VER 字符串中取出第 0 个位置开始的 1 个字符,`${CUS_PRODUCT_VER:1:1}` 表示从 CUS_PRODUCT_VER 字符串中取出第 1 个位置开始的 1 个字符,以此类推。使用 `printf` 函数将这 4 个字符按照指定格式输出。
相关问题
CUS_PRODUCT_VER=`echo V${CUS_PRODUCT_VER:0:1}.${CUS_PRODUCT_VER:1:1}.${CUS_PRODUCT_VER:2:1}.${CUS_PRODUCT_VER:3:1}` 使用printf
将上述代码改写为使用 `printf` 函数的方式,可以这样写:
```
CUS_PRODUCT_VER=$(printf "V%s.%s.%s.%s" ${CUS_PRODUCT_VER:0:1} ${CUS_PRODUCT_VER:1:1} ${CUS_PRODUCT_VER:2:1} ${CUS_PRODUCT_VER:3:1})
```
`printf` 函数的第一个参数是格式化字符串,其中 `%s` 表示字符串,这里需要输出 4 个字符串,每个字符串都是从 CUS_PRODUCT_VER 变量中取出的一个字符,因此需要使用 4 个变量来表示这 4 个字符,分别是 `${CUS_PRODUCT_VER:0:1}`、`${CUS_PRODUCT_VER:1:1}`、`${CUS_PRODUCT_VER:2:1}`、`${CUS_PRODUCT_VER:3:1}`。在 `printf` 函数中,这 4 个变量按照指定的格式输出,中间用点号连接,最终得到格式化后的字符串,赋值给 CUS_PRODUCT_VER 变量。
echo -e "\n版本自增" echo 'user='$1 myTargetFile=./device/newlink/NL5H00X/Hisi352_YG.csv csvSel=cat $myTargetFile|grep "${CUS_PROJECT_NAME},${CUS_PRODUCT_ID},${CUS_OS_TYPE},${CUS_CUSTOMER_NAME}" delVercsv=${csvSel//$CUS_PRODUCT_VER/} echo -e "\n csv select:\n\t"$csvSel echo -e "\n csv product version:\t"$CUS_PRODUCT_VER echo -e "\n csv delVercsv :\t"$delVercsv CUS_PRODUCT_VER=echo $CUS_PRODUCT_VER|tr -cd "[0-9]" let CUS_PRODUCT_VER++ CUS_PRODUCT_VER=echo V${CUS_PRODUCT_VER:0:1}.${CUS_PRODUCT_VER:1:1}.${CUS_PRODUCT_VER:2:1}.${CUS_PRODUCT_VER:3:1} echo " 版本更新为:"$CUS_PRODUCT_VER 我如何将修改过的CUS_PRODUCT_VER重新写到文件里面去
你可以使用sed命令将修改过的CUS_PRODUCT_VER写回到文件中,如下所示:
```
sed -i 's/${CUS_PROJECT_NAME},${CUS_PRODUCT_ID},${CUS_OS_TYPE},${CUS_CUSTOMER_NAME},${CUS_PRODUCT_VER}/${CUS_PROJECT_NAME},${CUS_PRODUCT_ID},${CUS_OS_TYPE},${CUS_CUSTOMER_NAME},${CUS_PRODUCT_VER}/g' $myTargetFile
```
其中,-i选项表示直接修改文件,s命令用于替换字符串,g选项表示替换所有匹配的字符串,$myTargetFile表示要修改的目标文件。这个命令会将文件中所有匹配的字符串替换为新的字符串,从而实现将修改后的CUS_PRODUCT_VER写回到文件中。