$0-$9 You can access parameters greater than 9 with parameter expansion. ${10}

  • $# Number of arguments
  • use shift to get all parameters with a loop

bash #!/bin/bash # posit-param2: script to display all arguments count=1 while [[ $# -gt 0 ]]; do echo "Argument $count = $1" count=$((count + 1)) shift done

  • A useful trick is to PROGNAME="$(basename "$0")" in the usage for the program name.

  • You can use positional parameters to pass arguments to functions:

``` bash file_info () { # file_info: function to display file information

  if [[ -e "$1" ]]; then
      echo -e "\nFile Type:"
      file "$1"
      echo -e "\nFile Status:"
      stat "$1"
  else
      echo "$FUNCNAME: usage: $FUNCNAME file" >&2
      return 1
  fi

} ```

Note: FUNCNAME is a shell variable, can be updated to keep track of currently executed function.