Ändern von Standard-DTT-Skripten zur Verwendung von -c anstelle von $1

Ändern von Standard-DTT-Skripten zur Verwendung von -c anstelle von $1

Es gibt viele tolle dtrace-Programme und einige davon erfordern die Übergabe einer PID, damit sie diese PID verfolgen können. In den dtrace-Skripten wird dieses Argument in $1 gespeichert. Ist es möglich, $1 einfach durch $target und -c in der Befehlszeile zu ersetzen und die restliche Skriptlogik bleibt gleich?

Ist es wirklich so einfach, wie ich denke, dass es sein sollte?

Antwort1

Sie müssten die Variable $targetin Ihrem Skript beispielsweise wie folgt auffüllen target=$1. Ein einfaches Ersetzen reicht nicht aus und funktioniert nicht.

Mal sehen, was wir in der Dokumentation dazu finden können:

Positionsparameter

Von der Befehlszeile an das Skript übergebene Argumente[1]:$0, $1, $2, $3 ...

$0ist der Name des Skripts selbst, $1ist das erste Argument, $2das zweite, $3das dritte und so weiter.[2]Nach $9müssen die Argumente in Klammern eingeschlossen werden, zum Beispiel ${10}, ${11}, ${12}.

Die speziellen Variablen$*Und$@bezeichnen alle Positionsparameter.

Sie können jedoch etwas Ähnliches tun, um die Lesbarkeit im Skript zu verbessern:

#!/bin/sh
target=$1

Dies würde jedoch eine Verschachtelung von Variablen/Daten bedeuten, was die meisten Programmierer als schlechte Praxis ansehen.

verwandte Informationen