How to check the number of arguments in a shell script?

Checking the Number of Arguments in a Shell Script

In a shell script, you can check the number of arguments passed to the script using the special variable $#. This variable contains the number of arguments, excluding the script name itself.

Here's how you can use it:

#!/bin/bash

# Check the number of arguments
if [ "$#" -eq 0 ]; then
    echo "No arguments provided."
else
    echo "Number of arguments: $#"
fi

In this example, the script first checks if the value of $# is equal to 0, which means no arguments were provided. If that's the case, it prints a message indicating that no arguments were provided.

If the number of arguments is greater than 0, the script prints the number of arguments using the $# variable.

You can also use the $# variable to perform more complex checks or actions based on the number of arguments. For example:

#!/bin/bash

# Check the number of arguments
if [ "$#" -lt 2 ]; then
    echo "Usage: $0 <arg1> <arg2>"
    exit 1
fi

# Access the arguments
arg1="$1"
arg2="$2"
echo "Argument 1: $arg1"
echo "Argument 2: $arg2"

In this example, the script checks if the number of arguments is less than 2. If that's the case, it prints a usage message and exits with a non-zero status code (1) to indicate an error. If the number of arguments is at least 2, the script accesses the first and second arguments using $1 and $2, respectively.

By understanding how to check the number of arguments in a shell script, you can write more robust and flexible scripts that can handle different input scenarios.

graph TD A[Start] --> B{Number of arguments} B -- 0 --> C[Print "No arguments provided."] B -- Greater than 0 --> D[Print "Number of arguments: $#"] D --> E[Access arguments using $1, $2, ...] C --> F[End] D --> F[End]

The Mermaid diagram above illustrates the flow of the script, where it first checks the number of arguments using the $# variable, and then takes different actions based on the result.

By using the $# variable, you can write shell scripts that can adapt to different input scenarios, making your scripts more versatile and user-friendly.

0 Comments

no data
Be the first to share your comment!