
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.