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