介绍
在本挑战中,你将学习如何创建一个简单的 Shell 脚本来处理 Shell 命令的输出。这是实现任务自动化以及从命令行工具中提取特定信息的关键技能。你将学习如何捕获命令输出、操作数据,并在脚本中使用这些处理后的信息。本挑战将帮助你掌握系统管理中必不可少的实用脚本编写技巧。
在本挑战中,你将学习如何创建一个简单的 Shell 脚本来处理 Shell 命令的输出。这是实现任务自动化以及从命令行工具中提取特定信息的关键技能。你将学习如何捕获命令输出、操作数据,并在脚本中使用这些处理后的信息。本挑战将帮助你掌握系统管理中必不可少的实用脚本编写技巧。
在这一步骤中,你将创建一个 Shell 脚本,用于捕获 ls -l 命令的输出,提取特定信息(文件大小和文件名),并以格式化的方式显示出来。此练习演示了如何解析命令输出,这是 Shell 脚本编写中的常见任务。
ls -l 命令输出的 Shell 脚本。ls -l 输出中提取文件大小和文件名。在 ~/project/scripts 目录下创建脚本。
脚本命名为 process_ls.sh。
脚本必须以 #!/bin/bash 解释器声明(shebang)开头。
脚本应捕获 ls -l 命令的输出并将其存储在变量中。
对于 ls -l 输出中列出的每个文件,提取其大小和名称。
按照以下格式显示提取的文件大小和文件名:
File size: <file_size> bytes
File name: <file_name>
将 <file_size> 替换为实际的文件字节大小,将 <file_name> 替换为实际的文件名。
假设你的目录中有一些文件。运行脚本时,输出应类似于:
[labex@host ~]$ cd ~/project/scripts
[labex@host scripts]$ nano process_ls.sh
[labex@host scripts]$ chmod +x process_ls.sh
[labex@host scripts]$ ./process_ls.sh
File size: 1300 bytes
File name: process_ls.sh
[labex@host scripts]$
具体的文件大小和名称将取决于你当前目录的内容。
variable=$(command))来捕获命令的输出。while read 循环。ls -l 命令提供了详细信息。你可能需要使用 awk 或 cut 等工具从输出的每一行中提取特定的列(字段)。ls -l 输出的第一行通常以「total」开头,在处理单个文件时应跳过该行。chmod +x)。在本挑战中,你学习了如何创建 Shell 脚本来处理命令的输出。具体来说,你捕获了 ls -l 的输出,提取了文件大小和名称,并以格式化的方式进行了展示。此练习演示了 Shell 脚本编写的核心概念,如命令替换、while read 循环以及使用 awk 进行文本处理。这些技能对于自动化任务、解析日志文件以及从各种命令行工具中提取特定数据至关重要,也是 RHCSA 考试和日常系统管理工作的常见要求。