How do I find the number of arguments passed to a Bash script? How do I find the number of arguments passed to a Bash script? bash bash

How do I find the number of arguments passed to a Bash script?


The number of arguments is $#

Search for it on this page to learn more:http://tldp.org/LDP/abs/html/internalvariables.html#ARGLIST


#!/bin/bashecho "The number of arguments is: $#"a=${@}echo "The total length of all arguments is: ${#a}: "count=0for var in "$@"do    echo "The length of argument '$var' is: ${#var}"    (( count++ ))    (( accum += ${#var} ))doneecho "The counted number of arguments is: $count"echo "The accumulated length of all arguments is: $accum"


to add the original reference:

You can get the number of arguments from the special parameter $#. Value of 0 means "no arguments". $# is read-only.

When used in conjunction with shift for argument processing, the special parameter $# is decremented each time Bash Builtin shift is executed.

see Bash Reference Manual in section 3.4.2 Special Parameters:

  • "The shell treats several parameters specially. These parameters may only be referenced"

  • and in this section for keyword $# "Expands to the number of positional parameters in decimal."