In Bash, you can parse command-line arguments using special variables and constructs. The most common way to do this is by using the $1, $2, $3, etc., variables to access individual command-line arguments, and by using loops and conditionals for more complex parsing. Here's a simple example:
bash
#!/bin/bash
# Parse command-line arguments
while [[ $# -gt 0 ]]; do
  case "$1" in
    -f|--file)
      file="$2"
      shift 2
      ;;
    -d|--directory)
      directory="$2"
      shift 2
      ;;
    --flag)
      flag=true
      shift
      ;;
    *)
      echo "Unknown option: $1"
      exit 1
      ;;
  esac
done
# Display parsed arguments
echo "File: $file"
echo "Directory: $directory"
echo "Flag: $flag"
In this script:
- We use a 
whileloop to iterate through the command-line arguments. - Inside the loop, we use the 
casestatement to match and handle different options. - The options are specified with 
-f,-d, and--flag, and they are followed by their corresponding values. - We shift the argument list to remove the processed options and their values.
 - If an unknown option is encountered, we display an error message and exit.
 
Here's how you can run the script with various command-line arguments:
bash
./script.sh -f myfile.txt -d /path/to/directory --flag
This command sets the file variable to "myfile.txt," the directory variable to "/path/to/directory," and the flag variable to "true."
You can customize the script to match your specific requirements and add more options as needed. This is a basic example, and you can expand it to handle more complex argument parsing scenarios.
Comments
Post a Comment