Shell脚本深入教程:Bash命令替换

Linux基础系列文章大纲
Shell系列文章大纲


Bash命令替换

使用反引号(在波浪线的按键上)或者$()来执行命令替换。

命令替换是指:先执行$()中的命令,将命令的输出结果替换到命令行$()位置处。

所以,命令替换和变量替换差不多,都是在命令开始执行前执行,并将结果替换到命令行。

如:

1
2
3
$ ls -l $(which sh)
$ a=$(date +"%s.%N")
$ echo $a

例如:

1
2
3
4
5
$ echo $(ls -1 /etc/m*.conf)
/etc/man_db.conf /etc/mke2fs.conf
$ echo "$(ls -1 /etc/m*.conf)"
/etc/man_db.conf
/etc/mke2fs.conf

例如,对目录下的mp4文件重命名,比如:

1
2
3
4
5
6
7
8
P1. 01.了解jQuery(1).mp4       -> 01.了解jQuery.mp4
P2. 02.jQuery的基本使用(2).mp4 -> 02.jQuery的基本使用.mp4
P3. 03.jQuery的2把利器(3).mp4 -> 03.jQuery的2把利器.mp4
P4. 04.jQuery函数的使用(4).mp4 -> 04.jQuery函数的使用.mp4
P5. 05.jQuery对象的使用(5).mp4 -> 05.jQuery对象的使用.mp4
P6. 06.基本选择器(26).mp4 -> 06.基本选择器.mp4
P7. 07.层次选择器(7).mp4 -> 07.层次选择器.mp4
P8. 08.过滤选择器(128).mp4 -> 08.过滤选择器.mp4

命令如下:

1
2
3
4
5
6
7
8
9
10
11
touch "P1. 01.了解jQuery(1).mp4"
touch "P2. 02.jQuery的基本使用(2).mp4"
touch "P3. 03.jQuery的2把利器(3).mp4"
touch "P4. 04.jQuery函数的使用(4).mp4"
touch "P5. 05.jQuery对象的使用(5).mp4"
touch "P6. 06.基本选择器(26).mp4"
touch "P7. 07.层次选择器(7).mp4"
touch "P8. 08.过滤选择器(128).mp4"
for i in *.mp4 ;do
mv "$i" "`echo $i | sed -r 's/.* ([0-9]{1,3}\..*)\([0-9]{1,3}\)\.mp4/\1.mp4/'`"
done
文章作者: 骏马金龙
文章链接: http://www.junmajinlong.com/shell/script_course/shell_cmd_substitution/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 骏马金龙
打赏我