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
    825 days 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
    
    • Agility0971OP
      link
      fedilink
      325 days ago

      I just switched over to bash and it worked lol. It just didn’t return for me in zsh…

      • 2xsaiko
        link
        fedilink
        625 days 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
        325 days 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?

        • Agility0971OP
          link
          fedilink
          125 days 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.

        • Agility0971OP
          link
          fedilink
          1
          edit-2
          25 days 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