In the Erlang Shell the output "ok"indicates that the expression is executed successfully. The Erlang shell first of all reading an Erlang expression, and after evaluating it and then printing the result and looping for another expression.
But the io:fwrite() function does two things. It prints out message "Good Morning" and after it returns the value "ok".
when we execute io:fwrite("Good Morning\n"). in the Erlang shell, the fwrite function prints "Good Morning" in the first line and the shell prints the return value "ok" in the next line (because we are using \n end of the "Good Morning" message.