Immer eine Prozess-ID & Zuweisung einer Variablen in einem Bash-Skript

Habe ich eine interessante situation. Den gesamten code hier ist eine funktionale pseudo-code-Beispiel für das genaue Problem, das ich mich vor so keine Witze über weisen Sie den Ausgang des date. Will ich eigentlich erfassen Sie die Ausgabe von einem langsameren mehr Ressourcen abhängige Funktion, aber date gut funktioniert zu zeigen, die funktionale Hindernis habe ich laufen.

Ich Schreibe bash-Skript, wo will ich weisen Sie den Ausgang eines Prozesses auf eine variable wie so:

RESPONSE=$(nice -n 19 date);

Nun, das gibt mir die RESPONSE in einem netten variable, richtig? Okay, was ist, wenn ich will, um die Prozess-ID der Funktion, die aufgerufen wird, innerhalb $()? Wie soll ich das tun? Ich nahm an, das würde funktionieren:

RESPONSE=$(nice -n 19 date & PID=(`jobs -l | awk '{print $2}'`));

Die macht gib mir die Prozess-ID in die variable PID, aber dann habe ich nicht mehr die Ausgabe an RESPONSE.

Den code, den ich verwende als funktionales Beispiel ist dies. Dieses Beispiel funktioniert, aber keine PID; ja, ich bin nicht die Zuordnung einer PID aber das ist wieder ein Beispiel:

RESPONSE=$(nice -n 19 date);
wait ${PID};
echo "${RESPONSE}";
echo "${PID}"; 

Diesem Beispiel gibt mir eine PID aber keine RESPONSE:

RESPONSE=$(nice -n 19 date & PID=(`jobs -l | awk '{print $2}'`));
wait ${PID};
echo "${RESPONSE}";
echo "${PID}";

Jemand wissen, wie kann ich den Wert von RESPONSE mit der PID auch?

  • Das sieht für mich wie Sie haben zu entscheiden, WIE etwas zu tun, aber etwas ist nicht ersichtlich. Wir brauchen eine Beschreibung von dem, was Sie tun müssen, nicht, wie Sie dachte, Sie sollten es tun. Davon ausgehen, dass jemand hier bereits weiß, wie zu tun, was Sie wirklich wollen, nicht das, was Sie uns sagen, dass Sie denken, Sie tun sollten.... also, wenn Sie uns sagen, dann werden Sie eine Antwort bekommen, die funktioniert. Wo wir jetzt sind, ist nicht hilft Ihnen überhaupt.
  • Jim, ich möchte, genau das zu tun, was das Skript zeigt. Ich möchte die Prozess ID & dann haben Sie das Skript warten, um diesen Prozess zu beenden, bevor Sie den nächsten Schritt. Aber—wenn das, was Luis sagt, wahr ist,—dann vielleicht einfach das einwickeln der Funktion in $() ist genug, um sicherzustellen, dass die nächsten Schritte nicht auftreten, bis eine variable zugewiesen wird?
InformationsquelleAutor JakeGould | 2013-05-01
Schreibe einen Kommentar