Source code for xonsh.xoreutils.echo
"""Implements a simple echo command for xonsh."""
[docs]
def echo(args, stdin, stdout, stderr):
"""A simple echo command."""
opts = _echo_parse_args(args)
if opts is None:
return
if opts["help"]:
print(ECHO_HELP, file=stdout)
return 0
ender = opts["end"]
args = map(str, args)
if opts["escapes"]:
args = map(lambda x: x.encode().decode("unicode_escape"), args)
print(*args, end=ender, file=stdout)
def _echo_parse_args(args):
out = {"escapes": False, "end": "\n", "help": False}
if "-e" in args:
args.remove("-e")
out["escapes"] = True
if "-E" in args:
args.remove("-E")
out["escapes"] = False
if "-n" in args:
args.remove("-n")
out["end"] = ""
if "-h" in args or "--help" in args:
out["help"] = True
return out
ECHO_HELP = """Usage: echo [OPTIONS]... [STRING]...
Echo the STRING(s) to standard output.
-n do not include the trailing newline
-e enable interpretation of backslash escapes
-E disable interpretation of backslash escapes (default)
-h --help display this message and exit
This version of echo was written in Python for the xonsh project: http://xon.sh
Based on echo from GNU coreutils: http://www.gnu.org/software/coreutils/"""