shell脚本编剧 函数定义 脚本中断

1.只替换第一个匹配结果
${变量名/old/new}

将第一个8替换为XX
#echo${phone/8/xx}

2.替换全部的匹配结果:
${变量名//old/new}

将phone变量中所有8给替换为xx
#echo ${phone//8/xx}

    字符串掐头去尾:
   	# A   = `head -1 /etc/passwd`
    # echo $A
    root:X:0:0root:/root:/bin/bash

1.从左往右,最短匹配删除:${变量名#*关键词}
删除做左侧第一个字符到最近的关键词“:”的部分,匹配所有
# echo ${A#
:}
x:0:0:root:/root:/bin/bash

2.从左往右,最长匹配删除: ${变量名##关键词}
删除从左侧第一个字符到最远的关键词:
# echo ${A##
}
/bin/bash

3.从右往左,最短匹配删除: ${变量名%关键词}
删除从右侧最后一个字符到往左最近的关键词:
# echo ${A%:*}
root:X:0:0:root:/root

4.从右往左,最长匹配删除: ${变量名%%关键词}
删除从右侧最后一个字符到往左最远的关键词:
# echo ${A%%:*}
root

实例:
首先批量的创建以.doc结尾的文件
通过脚本,批量修改文件的后缀名,将.doc改为.txt

将/video目录下以.mp4结尾的文件,后缀改为.mkv

#!/bin/bash
for i in `ls /video/*.$1`
do
	mv $1  ${i%.*}.$2
done
# sh renamefile.sh  mp4  mkv

版权声明:本文为Dzixiaobai原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。