换一个方法 delVercsv=echo ${csvSel%$CUS_PRODUCT_VER}
时间: 2024-03-11 14:49:34 浏览: 52
这个命令不是一个完整的命令,缺少了 `$()` 语法。如果要将 `${csvSel%$CUS_PRODUCT_VER}` 的结果保存到 `$delVercsv` 变量中,应该使用下面的命令:
```
delVercsv=$(echo ${csvSel%$CUS_PRODUCT_VER})
```
这个命令首先执行了一个 `echo` 命令,将 `${csvSel%$CUS_PRODUCT_VER}` 的结果输出到标准输出,然后使用 `$()` 语法将输出结果保存到 `$delVercsv` 变量中。`${csvSel%$CUS_PRODUCT_VER}` 的含义是从变量 `$csvSel` 的末尾开始,删除最后一个匹配 `$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写回到文件中。
csvSel=`cat $myTargetFile|grep "${CUS_PROJECT_NAME},${CUS_PRODUCT_ID},${CUS_OS_TYPE},${CUS_CUSTOMER_NAME}"` delVercsv=`echo ${csvSel%$CUS_PRODUCT_VER}` 其中的$CUS_PRODUCT_VER 没有被删掉
这段代码中,$CUS_PRODUCT_VER没有被删掉是因为在delVercsv变量中没有指定要删除的内容。可以使用以下代码将$CUS_PRODUCT_VER从csvSel中删除:
```
csvSel=`cat $myTargetFile|grep "${CUS_PROJECT_NAME},${CUS_PRODUCT_ID},${CUS_OS_TYPE},${CUS_CUSTOMER_NAME}"`
delVercsv=${csvSel//$CUS_PRODUCT_VER/}
```
在这里,我们使用了bash shell的字符串替换功能,将$CUS_PRODUCT_VER替换为空字符串,从而实现删除的效果。
阅读全文