echo - macOS


The echo command in macOS is used for displaying lines of text or string variables. It’s a powerful tool primarily used in shell scripting and command line operations to output the content of variables or display a message in the terminal. Effective uses include debugging scripts, displaying system environment information, and automating messages in scripts.


The basic syntax of the echo command is:

echo [option] [string]
  • [option]: This is optional and can be used to modify the behavior of the echo command.
  • [string]: The text or variable you want to display. This can include plain text, variables, or a combination of both.


echo provides several options that control its behavior:

  • -n: Do not output the trailing newline.
  • -e: Enable the interpretation of backslash escapes (e.g., \n for a new line, \t for a tab).
  • -E: Explicitly suppresses the interpretation of backslash escapes, which is the default behavior.

Default behavior: By default, echo uses the -E option where backslash characters are treated as plain text.


  1. Simple Text Output

    echo "Hello, world!"

    Outputs: Hello, world!

  2. Using Backslash Escapes

    echo -e "Line 1\nLine 2"


    Line 1
    Line 2
  3. Avoiding the New Line

    echo -n "Hello, world!"

    Outputs: Hello, world! without a new line at the end.

Common Issues

  • Backslash Escapes Not Working: Users often forget to include the -e option to enable escape sequences. Always use echo -e when working with backslash escapes.
  • Unwanted Newlines: By default, echo adds a newline at the end of the output. Use echo -n to prevent this if a trailing newline is not desired.


echo can be integrated into larger scripts or used in combination with other commands. Below is an example of echo used with a pipe and grep:

echo -e "foo\nbar" | grep "bar"

This command chain outputs bar by echoing two lines and using grep to filter the output.

  • printf: Offers greater control over the format and output than echo.
  • cat: Typically used to read files, but can sometimes be substituted with echo for displaying simple strings.

For further reading, you can visit the official Bash Reference Manual.