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.

  • just_another_person@lemmy.world
    link
    fedilink
    arrow-up
    2
    arrow-down
    1
    ·
    edit-2
    7 hours ago

    Are you saying it waits forever, or you read somewhere it will wait forever and you want clarification?

    Guessing that file doesn’t exist already is the problem, and you don’t even need to use tee in this example.

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

      what I was saying was that echo "text" | sudo tee newfile would hang and never return and needs to be interrupted. I just noticed this does not happen in bash but I was testing in zsh.

      Guessing that file doesn’t exist already is the problem, and you don’t even need to use tee in this example.

      you’ve missed the point here I’m afraid. But I’ll blame it on my for not explaining properly what I was intending to do.

      • just_another_person@lemmy.world
        link
        fedilink
        arrow-up
        3
        arrow-down
        1
        ·
        edit-2
        6 hours ago

        ZSH is bash-compliant, but will not always behave like bash in all situations.

        Add sh -c before echo and see if that works

        • Agility0971@lemmy.worldOP
          link
          fedilink
          arrow-up
          2
          ·
          6 hours ago

          yep. that did it. I had to wrap the entire thing in quotes though

          sh -c "echo 'test' | sudo tee newfile"