[英]bash stdout some information and pipe other from inside loop
如何打印通過管道傳輸到其他命令的循環的輸出:
for f in "${!myList[@]}"; do
echo $f > /dev/stdout # echoed to stdout, how to?
unzip -qqc $f # piped to awk script
done | awk -f script.awk
您可以使用/dev/stderr
或第二個文件描述符:
echo something >&2 | grep nothing
echo something >/dev/stderr | grep nothing
您可以使用將連接到標准輸出的另一個文件描述符:
# for a single command group
{ echo something >&3 | grep nothing; } 3>&1
# or for everywhere
exec 3>&1
echo something >&3 | grep nothing
# same as above with named file descriptor
exec {LOG}>&1
echo 123 >&$LOG | grep nothing
您還可以將輸出重定向到當前控制終端/dev/tty
(如果有):
echo something >/dev/tty | grep nothing
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.