So weisen Sie eine Variable innerhalb einer Pipe zu

So weisen Sie eine Variable innerhalb einer Pipe zu

Ich baue einen Einzeiler in Bash.
Wenn das Erstellen eines Skripts oder das Schreiben temporärer Dateien eine Option wäre, müsste ich nicht fragen.

Ich muss in der Mitte einer Reihe von Pipes eine Variable zuweisen, die später verwendet werden soll.

    cat list | awk '{print $1".modifications_to_name"' | (capture $NAME and pass $NAME down pipe) \
    | checkStatus | grep pertinentinfo | cleanupFormatOfPertinentInfo | sendAlert $NAME

Antwort1

Wenn wir außer Acht lassen, dass in Ihrem Awk eine Klammer fehlt, und davon ausgehen, dass die Liste eine einzelne Zeile enthält, warum nicht:NAME=$( cat list | awk '{print $1".modifications_to_name"') && checkStatus | grep pertinentinfo | cleanupFormatOfPertinentInfo | sendAlert $NAME

Wenn Sie eine Liste mit mehreren Zeilen durchlaufen und den Namen jedes Mal anders auswerten möchten:

while read NAME; do checkStatus | grep pertinentinfo | cleanupFormatOfPertinentInfo | sendAlert $NAME ; done < <(cat list | awk '{print $1".modifications_to_name"')

Das scheint eineXYFrage allerdings.

verwandte Informationen