This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Redirecting stderr to stdout through pipe doesn't work the way it does in Linux


On 12/5/2018 10:11 AM, David Karr wrote:
On Tue, Dec 4, 2018 at 12:52 PM Marco Atzeri <marco.atzeri@gmail.com> wrote:

Am 04.12.2018 um 21:41 schrieb David Karr:
"CYGWIN_NT-6.1 WACDTL03DK068X 2.9.0(0.318/5/3)"

I installed a version of "kubectl" for windows, and I use it extensively
in
Cygwin bash for scripting command-line automation. In general, this works
perfectly fine. I even use the same scripting in a Linux VM.

I'm seeing an issue with one script that works fine in the Linux VM, but
not in Cygwin.

The command line is approximately this:

       kubectl exec pod -c container -i -t -- grep "string"
stuff.properties
2>&1 | sed -e 's/^propname=//'

In Linux, this works perfectly fine.  In Cygwin, it says "stdout is not a
tty".

I haven't updated my local Cygwin installation for quite a while. I'd
prefer not to, unless there is a strong chance this kind of thing would
be
fixed.


as kubectl is not a Cygwin program, it is not aware of cygwin pty.
You can try to use winpty to overcome the problem.

https://github.com/rprichard/winpty



It turns out that not only had I already used winpty for similar
functionality, it was actually in place in the pipeline when I tried to do
this.  When I turned on debugging output, it showed that kubectl was
already being wrapped by winpty when it reported "stdout is not a tty".
However, this was one shell script wrapper deeper than I usually call it.
Does it matter whether winpty is called from the shell script I'm calling,
or from the script being called by the script I'm calling?

Your query got me interested in looking and I believe that winpty needs to be at the front of all the commands so that it can communicate with mintty properly. To overcome the need to remember you could add an alias to execute the command; `alias FOO="winpty FOO"'.

--
cyg Simple

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]