staging.inyokaproject.org

Lieber eine Shell-Funktion wiederholt aufrufen oder ein Array verwenden?

Status: Ungelöst | Ubuntu-Version: Kubuntu 17.10 (Artful Aardvark)
Antworten |

moonwalker3

Anmeldungsdatum:
30. Juni 2008

Beiträge: 802

Eine weitere Frage: wenn man oft (100+ Mal) eine Funktion aufruft und 2 Parameter übergibt, würde es stattdessen nicht eher Sinn machen, mit einem Array zu arbeiten? Das dürfte doch schneller sein, oder? Gibt es Arrays in Shell-Skripten?

Moderiert von rklm:

Abgetrennt von diesem Thema. Bitte beachte Richtig fragen (Abschnitt „FrageThema“) und handele nicht eine ganze Kaskade von Fragen in einem Thema ab!

MisterIgo

Anmeldungsdatum:
23. April 2009

Beiträge: 947

Es gibt Arrays, ja.

Du willst stattdessen ein Array mit 2 Einträgen als Parameter übergeben? Wieso sollte das schneller sein? Um wirklich sicherzugehen, probiere es am besten einfach aus: Zwei Shellskripte schreiben, die das gleiche machen, nur einmal mit Array und einmal mit Parametern und dann per

$ time skript.sh

messen.

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

MisterIgo schrieb:

Es gibt Arrays, ja.

Und übrigens gibt es sie in gewisser Weise auch in der sh - nicht nur in der bash oder zsh: Das sind nämlich das Array der Kommandozeilenargumente (also $1, $2, $*, $@ usw.) und die Arrays der Funktionsargumente.

Du willst stattdessen ein Array mit 2 Einträgen als Parameter übergeben? Wieso sollte das schneller sein?

Es ist auch unklar, was "mit einem Array [...] arbeiten" eigentlich bedeutet. Geht es um eine globale Array-Variable, deren Werte dann in der Funktion genutzt werden sollen? Geht es darum, in der Funktion ein Array für irgendetwas zu verwenden? Mit etwas mehr Informationen könnten wir besser darauf eingehen.

Um wirklich sicherzugehen, probiere es am besten einfach aus: Zwei Shellskripte schreiben, die das gleiche machen, nur einmal mit Array und einmal mit Parametern und dann per

$ time skript.sh

messen.

Und natürlich mehrfach messen, um irgendwelche Einmaleffekte auszugleichen.

Antworten |