Antworten:
Sie können dasselbe Format wie für jedes andere Array verwenden. Um das 2. und 3. Element aus zu extrahieren $@, würden Sie Folgendes tun:
echo "${@:1:2}"
- -
| |----> slice length
|------> slice starting index
"${@:1:2}"mir in Bash 4.2.46 tatsächlich die 1. und 2. Befehlszeilenargumente . In der Zwischenzeit "${@:1}"erhalte ich die vollständigen Befehlszeilenargumente und "${@:0}"den Skriptnamen, gefolgt von den vollständigen Befehlszeilenargumenten .
$@ Arrays sind das 1. und 2. Argument. "${@:1}"Gibt das gesamte Array aus, beginnend mit dem 2. Element (dem 1. Argument) und ${@:0}das gesamte Array beginnend mit dem 1. Element, das der Name des Skripts ist. Was hast du erwartet?
"$@". IhreargvZuweisung würde brechen, wenn irgendwelche Argumente Leerzeichen enthalten.