zsh-users
 help / color / mirror / code / Atom feed
* Weird behavior with redirecting stdin
@ 2019-09-02 13:58 Aryn Starr
  2019-09-02 14:00 ` Pier Paolo Grassi
  2019-09-02 14:36 ` Roman Perepelitsa
  0 siblings, 2 replies; 3+ messages in thread
From: Aryn Starr @ 2019-09-02 13:58 UTC (permalink / raw)
  To: zsh-users

With these functions:

```
fcm () {
# Function for selecting a command interactively
        echo ${(F)commands} | fzf
}

teec () {
# Dumbed down version of a function that both echoes and copies to clipboard. (Current toy version just echoes.)
        local out="$(</dev/stdin)"
        print -r -- "$out"
}
```

I can do `fcm | teec` and it works correctly.
However, if I change `teec` to this:

```
teec () {
        echo 'echo hi' | { eval "$(</dev/stdin)" }
        local out="$(</dev/stdin)"
        print -r -- "$out"
}
```

Then running `fcm | teec` hangs (after printing `hi`) and doesn’t even get interrupted with ^D or ^C.
I don’t understand why these problems occur at all, and I have no idea how to go about fixing them ...

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Weird behavior with redirecting stdin
  2019-09-02 13:58 Weird behavior with redirecting stdin Aryn Starr
@ 2019-09-02 14:00 ` Pier Paolo Grassi
  2019-09-02 14:36 ` Roman Perepelitsa
  1 sibling, 0 replies; 3+ messages in thread
From: Pier Paolo Grassi @ 2019-09-02 14:00 UTC (permalink / raw)
  To: Aryn Starr; +Cc: Zsh-Users List

[-- Attachment #1: Type: text/plain, Size: 976 bytes --]

hello, anyone has suggestions on this?
regards

Il giorno lun 2 set 2019 alle ore 15:59 Aryn Starr <
whereislelouch@icloud.com> ha scritto:

> With these functions:
>
> ```
> fcm () {
> # Function for selecting a command interactively
>         echo ${(F)commands} | fzf
> }
>
> teec () {
> # Dumbed down version of a function that both echoes and copies to
> clipboard. (Current toy version just echoes.)
>         local out="$(</dev/stdin)"
>         print -r -- "$out"
> }
> ```
>
> I can do `fcm | teec` and it works correctly.
> However, if I change `teec` to this:
>
> ```
> teec () {
>         echo 'echo hi' | { eval "$(</dev/stdin)" }
>         local out="$(</dev/stdin)"
>         print -r -- "$out"
> }
> ```
>
> Then running `fcm | teec` hangs (after printing `hi`) and doesn’t even get
> interrupted with ^D or ^C.
> I don’t understand why these problems occur at all, and I have no idea how
> to go about fixing them ...

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Weird behavior with redirecting stdin
  2019-09-02 13:58 Weird behavior with redirecting stdin Aryn Starr
  2019-09-02 14:00 ` Pier Paolo Grassi
@ 2019-09-02 14:36 ` Roman Perepelitsa
  1 sibling, 0 replies; 3+ messages in thread
From: Roman Perepelitsa @ 2019-09-02 14:36 UTC (permalink / raw)
  To: Aryn Starr; +Cc: Zsh Users

On Mon, Sep 2, 2019 at 3:59 PM Aryn Starr <whereislelouch@icloud.com> wrote:
> Then running `fcm | teec` hangs (after printing `hi`) and doesn’t even get interrupted with ^D or ^C.
> I don’t understand why these problems occur at all, and I have no idea how to go about fixing them ...

I don't know what's going on but here's a simplified test case that hangs:

    echo | fzf | { /bin/true; : "$(cat)" }

This also hangs:

    fzf | { /bin/true; : "$(cat)" }

I think this might be caused by fzf getting suspended when it tries to
write to the terminal. I'm just speculating though.

Roman.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-09-02 14:37 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-02 13:58 Weird behavior with redirecting stdin Aryn Starr
2019-09-02 14:00 ` Pier Paolo Grassi
2019-09-02 14:36 ` Roman Perepelitsa

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).