Can someone explain why this would make the command wait forever? What is tee waiting for?

echo "test" | sudo tee newfile

What would be a scriptable workaround for such cases?

Edit: this command would not terminate in zsh. This works fine in bash tho.

  • bleistift2@sopuli.xyz
    link
    fedilink
    English
    arrow-up
    6
    ·
    8 hours ago

    Can’t reproduce.

    16:22:48:~/tmp$ echo foo | sudo tee newfile
    [sudo] Passwort für bleistift2:         
    foo
    
    16:23:02:~/tmp$ ls -l newfile
    -rw-r--r-- 1 root root 4 Feb 23 16:22 newfile
    
      • 2xsaiko@discuss.tchncs.de
        link
        fedilink
        arrow-up
        2
        ·
        1 hour ago

        I use zsh and it works fine for me fwiw. Same with zsh --no-rcs (which doesn’t load zshrc). Maybe you have some weird setting enabled?

      • bleistift2@sopuli.xyz
        link
        fedilink
        English
        arrow-up
        3
        ·
        7 hours ago

        My initial guess was that sudo would eat up the echo’d foo as the password. Maybe sudo works differently when invoked via zsh?

        • Agility0971@lemmy.worldOP
          link
          fedilink
          arrow-up
          1
          ·
          7 hours ago

          sudo does not prompt for password in my container. It just elevates the privileges straight away. Yeah, it’s hard to tell. Or test for that matter.

        • Agility0971@lemmy.worldOP
          link
          fedilink
          arrow-up
          1
          ·
          edit-2
          7 hours ago

          no way. I’m in /tmp for this one

          echo 'test' | tee newfile
          tee: newfile: Permission denied
          test
          echo 'test' | sudo tee newfile #the prompt never returns when running this in zsh