新建一个文件123.txt
123.txt内容如下:
Release = 0517
VER=”1.0.18.YYMMDD”;
CUS_VER=”xyf123456.xxx”;
脚本内容如下:
RELV=$(shell echo cat 123.txt | grep "Relase" | cut -d ' ' -f 3
)
UPGV=$(shell echo cat 123.txt | grep "VER=" | head -n 1 | cut -c 6-12``date +%y%m%d
)
DATE_STR=$(shell date +%y%m%d)
echo (UPGV)_
(UPGV)_
(RELV)
执行结果:
1.0.18.180720_0517
命令分析:
1、grep “Release”的意思是找到并列出有Release字符串的所有行,grep “VER=”同理。
2、”cut -d ’ ’ -f 3”的意思是把Release = 0517这个字符串以空格作为分隔符并且取第三个域的内容,=左右分别有一个空格符的。
3、head -n 1的意思是只取第一行匹配的内容,这里是VER=”1.0.18.YYMMDD”;如果不加这个命令的话grep “VER=”的结果是这样的
VER=”1.0.18.YYMMDD”;
CUS_VER=”xyf123456.xxx”;
这不是我想要的,所以加了head -n 1在后面就可以得出这样的结果
VER=”1.0.18.YYMMDD”;
4、cut -c 6-12的意思是已字符为单位取VER=”1.0.18.YYMMDD”;这个字符串的第6~12个字符,结果是“1.0.18.”。
5、date +%y%m%d
的意思就是取当前日期结果是180720,和4的结果拼接在一起就是
1.0.18.180720
6、有个疑问,这条命令中的符号‘’是什么作用呢???
cat 123.txt | grep “VER=” | head -n 1 | cut -c 6-12
(shell echo`date +%y%m%d
)