bashprintfechobc

`printf "2+2" | bc` returns a syntax error, `echo "2+2" | bc` works, how are they handling strings differently?


printf "2+2" | bc gives me a syntax error, but echo "2+2" | bc outputs 4, I thought printf would work fine but it didn't, could someone help me understand why?


Solution

  • $ printf "2+2\n" | bc 
    4
    

    Looks good to me.

    bc won't be pleased if there's EOF before the expression line ends.