bash выводит некоторую информацию и передает другой из цикла - PullRequest
0 голосов
/ 25 января 2020

Как напечатать вывод из al oop, который передается другой команде:

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

1 Ответ

3 голосов
/ 25 января 2020

Вы можете использовать /dev/stderr или второй дескриптор файла:

echo something >&2 | grep nothing
echo something >/dev/stderr | grep nothing

Вы можете использовать другой дескриптор файла, который будет подключен к stdout:

# 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
...