Re: Weird issue, command output unable to pipe or capture

kevin dankwardt <[email protected]>
Newsgroups gmane.org.user-groups.linux.svlug
Message-ID <CAJUC52FvSteBGPj1z+6MuQWQNAZF+VfxvWkZim=t60Qz0b=kHg@mail.gmail.com>
Caching/buffering stderr sounds pretty unfortunate and inconvenient.

On Thu, Apr 19, 2018 at 11:28 AM, Steve Litt <[email protected]>
wrote:

> When using |& to pipe stderr and stdout to the same place, be careful
> not to assume anything about order in the merged stream. Python 3 has
> all sorts of caching so that stderr is outputted later than you'd think
> it would be.
>
> SteveT
>
>
> On Thu, 19 Apr 2018 10:40:11 -0700
> kevin dankwardt <[email protected]> wrote:
>
> > |&  is also handy so that stdout and stderr both go into the pipe.
> >
> > as an example
> >
> > $ strace -e open ls |& grep /lib
> >
> >
> >
> > On Thu, Apr 19, 2018 at 8:53 AM, Robert Freiberger
> > <[email protected]> wrote:
> >
> > > That works!
> > >
> > > So I never knew that you could route the stderr after the > to a
> > > file. I'm going to refresh my knowledge of stdout and stderr but I
> > > was able to capture the output in a variable by using the foo=$(foo
> > > 2>&1). I honestly don't think I've encountered this before.
> > >
> > > Thanks again!
> > >
> > > On Wed, Apr 18, 2018 at 9:07 PM Lister <[email protected]>
> > > wrote:
> > >>
> > >>
> > >> On 04/18/2018 09:01 PM, Robert Freiberger wrote:
> > >> > Hello,
> > >> >
> > >> > I've stumbled across a strange issue and wasn't sure if I'm
> > >> > overlooking something very simple. The problem is at work we
> > >> > have an application written in Ruby which is a wrapper for Chef
> > >> > knife command. It's pretty much taking the Chef environments
> > >> > from our Chef org and building a set of arguments.
> > >> >
> > >> > For example:
> > >> >
> > >> > $ foo dev-stage1 list
> > >> >
> > >> > This would use the Chef knife command to query the hosts in the
> > >> > dev-stage1 environment and list them out. The problem is the
> > >> > output does not allow me to pipe or capture in a bash variable
> > >> > "foo=$(foo dev-stage1 list)". Even something like "$ foo
> > >> > dev-stage1 list > /tmp/foo" doesn't work either.
> > >> Are you sure the command does not output to stderr?
> > >> You may try
> > >> $ foo > /tmp/foo 2>&1
> > >>
> > >> thanks
> > >> K
> > >>
> > > --
> > > Robert Freiberger
> > > 510-936-1210
> > >
> > > _______________________________________________
> > > svlug mailing list
> > > [email protected]
> > > http://lists.svlug.org/lists/listinfo/svlug
> > >
> > >
> >
> >
>
> _______________________________________________
> svlug mailing list
> [email protected]
> http://lists.svlug.org/lists/listinfo/svlug
>



-- 
visit www.kcomputing.com for the best in Linux developer training.

_______________________________________________
svlug mailing list
[email protected]
http://lists.svlug.org/lists/listinfo/svlug
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.