![如何在管道内分配变量](https://linux22.com/image/83427/%E5%A6%82%E4%BD%95%E5%9C%A8%E7%AE%A1%E9%81%93%E5%86%85%E5%88%86%E9%85%8D%E5%8F%98%E9%87%8F.png)
我正在 bash 中构建一个衬垫。
如果制作脚本或编写临时文件是一种选择,我就不需要询问。
我需要在一组管道的中间分配一个变量以供后续使用。
cat list | awk '{print $1".modifications_to_name"' | (capture $NAME and pass $NAME down pipe) \
| checkStatus | grep pertinentinfo | cleanupFormatOfPertinentInfo | sendAlert $NAME
答案1
忽略你的 awk 缺少大括号,并假设 list 包含一行,为什么不:NAME=$( cat list | awk '{print $1".modifications_to_name"') && checkStatus | grep pertinentinfo | cleanupFormatOfPertinentInfo | sendAlert $NAME
如果您想迭代具有多行的列表,并且每次都将名称评估为不同的内容:
while read NAME; do checkStatus | grep pertinentinfo | cleanupFormatOfPertinentInfo | sendAlert $NAME ; done < <(cat list | awk '{print $1".modifications_to_name"')
这似乎是一个XY问题虽然。