对变量进行提取操作时想到如何进行获取变量进行后续传参,直接echo '变量'获取内容
如:
dest=/etc/sysconfig/network-scripts/ifcfg-eth0
1、获取echo $network=/etc/sysconfig/network-scripts
network=`echo $dest | cut -d "/" -f -4`
-d指定分隔符
-f指定区域 “-4”第四个分隔符往前区域
“4-”第四个分隔符往后区域
“4”第四个分隔符区域
network=`echo ${dest%/*}`
%号截取,删除右边字符,保留左边字符。
#/* 表示从右边开始,删除第一个 / 号及右边的字符
2、获取echo $network=ifcfg-eth0
network=`echo $dest | cut -d "/" -f 5`
network=`echo $dest | awk -F "/" '{print $5}'`
-F指定分隔符
'{print $5}'格式指定第5个分隔符区域
network=`echo ${dest##*/}`
## 号截取,删除左边字符,保留右边字符。
##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符
network=`echo ${dest:0-10}`
从右边开始到第十个字符结束
3、获取echo $network=eth0
network=`echo $dest | cut -d "-" -f 3`
network=`echo $dest | awk -F "-" '{print $3}'`
network=`echo ${dest:0-4}`
4、获取echo $network=ifcfg
network=`echo ${dest:0-10:5}`
从后面往前选中10个字符,再选出前5个字符
格式 | 说明 |
---|---|
${string: start :length} | 从 string 字符串的左边第 start 个字符开始,向右截取 length 个字符。 |
${string: start} | 从 string 字符串的左边第 start 个字符开始截取,直到最后。 |
${string: 0-start :length} | 从 string 字符串的右边第 start 个字符开始,向右截取 length 个字符。 |
${string: 0-start} | 从 string 字符串的右边第 start 个字符开始截取,直到最后。 |
${string#*chars} | 从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。 |
${string##*chars} | 从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。 |
${string%%chars*} | 从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。 |
${string%chars*} | 从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。 |