(bash) Array und zusätzlichen Parameter an Funktion übergeben

nAbend, mal ne reine Verständnisfrage:

Soweit ich bis jetzt das Shell Scripting verstanden habe, werden mehrere Parameter an eine Funktion als einzelne Elemente
eines Arrays übergeben. Prinzipiell wäre die Übergabe von 3 Parametern dasselbe, als wenn ich die Parameter in ein Array
aus 3 Elementen schreibe.

Entweder kann ich die Parameter einzeln mittels „$1“, „$2“, … „$n“ abfragen, oder aber mit der internen Variable „$@“ die einzelnen
Elemente als Array von Strings nacheinander in einer for Schleife abarbeiten.



#!/bin/env bash

CMDLIST=( 'wget' 'curl' )
CMD=""

# Returns true if command available
# False if command not found
checkcmd() {
    CMD="$1"
    if [ $(type -P ${CMD}) ]; then
        echo "$CMD"
        return 0
    else
        return 1
    fi
}

# Überprüft übergebene Listen
checklist() {
	    for var in "$@"; do                                      # Schleife um die Variablen abzuarbeiten
                      COMMAND=$(checkcmd ${var})
                      RC="$?"
                      if [ "$RC" -eq 0 ]; then
				echo "$COMMAND"
	                        break
                      fi
	    done
            echo ""
}

checkcmd ${CMD}
RC="$?" 
if [ ! "$RC" ]; then
     checklist "${CMDLIST[@]}"
fi


Ich hatte ursprünglich die Überprüfung ursprünglich in checklist, habe es aber wegen der allgemeinen Verwendbarkeit rausgenommen.

Gibt es eine Möglichkeit, als ersten Parameter ${CMD} zu übergeben, die restlichen dann als Array? Wobei das Array evtl. um weitere
Kommandos erweitert werden könnte. Tipps für einen besseren „Stil“ sind natürlich auch willkommen. Bin ja noch in der Lernphase :smiley:

MfG