Creating a Bash Script for Argument Processing

LinuxLinuxBeginner
Practice Now

Introduction

In this challenge, you will create a bash script that processes command-line arguments. This script will demonstrate key concepts in bash scripting, including handling command-line arguments, using special variables, and displaying process information. This task is essential for system administrators and developers who need to create flexible and informative command-line tools.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("`Linux`")) -.-> linux/BasicFileOperationsGroup(["`Basic File Operations`"]) shell(("`Shell`")) -.-> shell/VariableHandlingGroup(["`Variable Handling`"]) shell(("`Shell`")) -.-> shell/FunctionsandScopeGroup(["`Functions and Scope`"]) linux/BasicFileOperationsGroup -.-> linux/chmod("`Permission Modifying`") shell/VariableHandlingGroup -.-> shell/variables_usage("`Variable Usage`") shell/VariableHandlingGroup -.-> shell/param_expansion("`Parameter Expansion`") shell/FunctionsandScopeGroup -.-> shell/func_def("`Function Definition`") subgraph Lab Skills linux/chmod -.-> lab-389272{{"`Creating a Bash Script for Argument Processing`"}} shell/variables_usage -.-> lab-389272{{"`Creating a Bash Script for Argument Processing`"}} shell/param_expansion -.-> lab-389272{{"`Creating a Bash Script for Argument Processing`"}} shell/func_def -.-> lab-389272{{"`Creating a Bash Script for Argument Processing`"}} end

Create and Configure the Bash Script

Let's create a bash script that processes and displays information about the arguments passed to it.

Tasks

  • Create a bash script named argts.sh in the /home/labex/ directory
  • Make the script executable
  • Implement the script to display the following information:
    • Total count of supplied arguments
    • Value of the first argument
    • PID of the script
    • All supplied arguments

Requirements

  • The script must be created at /home/labex/argts.sh
  • The script must have the correct shebang line: #!/bin/bash
  • The script must be executable
  • The script must use appropriate bash special variables to display the required information
  • The output should be formatted clearly with a header line of equal signs

Example

When the script is run with arguments, it should produce output similar to this:

$ /home/labex/argts.sh one two three
===========================
The total count of the supp argts: 3
The value of the first arg is: one
The PID of the script is : 12345
All the argts: one two three

Summary

In this challenge, you created a bash script that processes and displays information about command-line arguments. This exercise demonstrates essential bash scripting concepts such as accessing special variables ($#, $1, $$, $*), creating executable scripts, and formatting output. These skills are crucial for system administrators and developers who need to create flexible command-line tools and process user input effectively.


上方是 'Creating a Bash Script for Argument Processing' 的挑战文档,其基本结构说明如下:

  • Title:挑战标题
  • Introduction:挑战的背景介绍
  • Steps:挑战步骤,包含多个 Step,每个 Step 包含以下内容:
    • Tasks:任务,描述本步骤的挑战目标
    • Requirement:要求,描述本步骤的挑战要求,例如在指定路径下操作,或者使用指定用户等,要求需要和检测脚本相互配合,确保准确检测用户的挑战结果
    • Example:示例,展示完成任务后的输出示例, 便于用户快速了解达到挑战目标后的预期结果
    • Verification:检查脚本,用于检查用户是否按照步骤正确执行了操作, 使用 YAML 格式,需要与任务要求相辅相成,确保准确检测用户的挑战结果
  • Summary:总结,总结本挑战的内容和学习成果

请按照以下要求修订挑战文档:

  1. 对挑战文档进行润色和校对,确保表达足够地道,没有英文语法错误和不常用句式,避免使用感叹号、疑问句等;
  2. 挑战是用来检验用户的学习成果,确保任务介绍,任务要求,示例,检查脚本等准确清晰;
  3. Verification 一般在挑战完成后执行,请不要检测挑战过程,而是检测挑战目标是否达成,避免检测脚本过于复杂;
  4. 每个步骤的 Verification 支持多个相同的结构,请拆分 Verification,确保每个 Verification 只有一个检查点,用户能看到更准确的提示信息;
  5. 挑战由学生独立完成,Verification 的提示信息 hint 不能直接告诉学生答案。
  6. 步骤文档中的代码、路径、文件名等需要用行内代码标记,代码块需要指定高亮语言;
  7. LabEx 提供给学生的 VM 默认使用 Ubuntu Linux 系统,默认用户为 labex,具有 sudo 权限,终端默认是 zsh,终端默认路径为 /home/labex/project
  8. 不能修改文档中已存在的图片和链接,示例输出尽量保留;
  9. 此外,需要再 Summary 中为老师提供一个 setup.sh 初始化脚本,用于初始化挑战环境所需的文件和配置,初始化脚本需要和挑战文档及 Verification 相互配合,确保学生能够顺利完成挑战。

输出修订后的英文挑战文档内容:

Other Linux Tutorials you may like