Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: read with redirected stdin
- X-seq: zsh-users 28627
- From: Roman Perepelitsa <roman.perepelitsa@xxxxxxxxx>
- To: Daniel Shahaf <d.s@xxxxxxxxxxxxxxxxxx>
- Cc: Zsh-Users List <zsh-users@xxxxxxx>, Pier Paolo Grassi <pierpaolog@xxxxxxxxx>
- Subject: Re: read with redirected stdin
- Date: Sun, 8 Jan 2023 14:48:24 +0100
- Archived-at: <https://zsh.org/users/28627>
- In-reply-to: <20230108132350.GL8411@tarpaulin.shahaf.local2>
- List-id: <zsh-users.zsh.org>
- References: <CAP+y1xBo2fS--G8k+PbwEwJJx2d_s7ZxAJWrTNTJpE+MBB2x2w@mail.gmail.com> <CAN=4vMo5EJTiExmGxt2cxD2=_5PC0b=NCSEdZQRda+kvshg2=Q@mail.gmail.com> <CAP+y1xBGBDhmf3uQmxoTrkakTc_1=n54OtH3MC6eTdtsACJFiA@mail.gmail.com> <CAN=4vMqDbbQnimVEbhboTXNOvwrEC97Cjijc3_Q+_q0kUDfN6A@mail.gmail.com> <20230108132350.GL8411@tarpaulin.shahaf.local2>
On Sun, Jan 8, 2023 at 2:30 PM Daniel Shahaf <d.s@xxxxxxxxxxxxxxxxxx> wrote:
>
> Roman Perepelitsa wrote on Sat, Jan 07, 2023 at 18:31:30 +0100:
> > On Sat, Jan 7, 2023 at 6:22 PM Pier Paolo Grassi <pierpaolog@xxxxxxxxx> wrote:
> > >
> > > Thanks, but i don't _always_ redirect stdin.
> >
> > The code will still work (except for the corner case I mentioned).
> >
> > Upon further thinking, the following should work in all cases:
> >
> > if [[ -n $TTY ]]; then
> > # There is a terminal. Read from it.
> > read -k1
> > else
> > # There is no terminal. Read from stdin.
> > read -k1 -u0
> > fi
>
> Would it be useful to provide a ctermid(3) wrapper in zsh/system?
Where would it be useful? Doesn't $TTY already provide a better alternative?
IIRC, ctermid() always returns "/dev/tty" while $TTY points to the real device.
Roman.
Messages sorted by:
Reverse Date,
Date,
Thread,
Author