通过 Bash 命令行进行自动化任务是极好的一种方式。不论你使用运行在服务器上的 Linux 进行管理日志文件或其他文件,还是你在个人电脑上整理文件以使桌面保持整洁,使用 Bash 的自动化功能会使你的工作变得更轻松。
自动执行文件任务:for
如果你对一堆文件要同时处理,并且对每个文件进行相同的操作,请使用 for命令。该命令会遍历文件列表,并执行一个或多个命令。for命令如下所示:
for 变量 in 列表do 命令done
我在示例中添加了额外的空白和换行,来分开 for命令中不同的部分。看起来好像无法在命令行中同时运行多个命令,不过你可以使用;将所有命令放在同一行中,就像这样:
for 变量 in 列表 ; do 命令 ; done
让我们看看它的实际效果。我使用 for命令来重命名一些文件。最近,我有一些截图,想要重命名。这些截图名称为filemgr.png或terminal.png,我想将screenshot放在每个名称前。我可以使用for命令一次性将 30 个文件重命名。这是两个文件的示例:
$ lsfilemgr.png terminal.png$ for f in *.png ; do mv $f screenshot-$f ; done$ lsscreenshot-filemgr.png screenshot-terminal.png
for命令使得在一系列文件中执行一种或多种操作变得容易。你可以用一些有意义的变量名,比如image或screenshot,或者你用示例中“缩写的”变量f。当我在使用for循环写脚本的时候,会选择有意义的变量名。但是当我在命令行中使用for,我通常会选择缩写变量名,比如f代表文件,d代表目录等。