Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: read with redirected stdin
- X-seq: zsh-users 28626
- From: Daniel Shahaf <d.s@xxxxxxxxxxxxxxxxxx>
- To: Zsh-Users List <zsh-users@xxxxxxx>
- Cc: Pier Paolo Grassi <pierpaolog@xxxxxxxxx>
- Subject: Re: read with redirected stdin
- Date: Sun, 8 Jan 2023 13:23:50 +0000
- Archived-at: <https://zsh.org/users/28626>
- Feedback-id: i425e4195:Fastmail
- In-reply-to: <CAN=4vMqDbbQnimVEbhboTXNOvwrEC97Cjijc3_Q+_q0kUDfN6A@mail.gmail.com>
- 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>
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? I'm
aware of tty(1), but that returns the name of the terminal _on stdin_,
which isn't necessarily the same thing as the controlling terminal.
Messages sorted by:
Reverse Date,
Date,
Thread,
Author