The most convenient way of doing this is by using process substitution. In bash the syntax looks as follows:
foo -o >(other_command)
(Note that this is a bashism. There's similar solutions for other shells, but bottom line is that it's not portable.)
Solution 2: Using named pipes explicitly
You can do the above explicitly / manually as follows:
Create a named pipe using the mkfifo
command.
mkfifo my_buf
Launch your other command with that file as input
other_command < my_buf
Execute foo
and let it write it's output to my_buf
foo -o my_buf
Solution 3: Using /dev/stdout
You can also use the device file /dev/stdout
as follows
foo -o /dev/stdout | other_command
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…