Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

(don't forget "-e" for echo)

  while true; do echo -en "  $(date)\r"; sleep 1; done


Depends on your echo. Zsh's interpretes escape sequences by default unless the "BSD_ECHO" option is used, bash's doesn't unless "xpg_echo" is on.

And xpg_echo is on by default for bash on macOS, so for users on macOS it looks like echo interprets escapes by default.

This is one of the reasons why echo is hopelessly unportable.

See https://unix.stackexchange.com/a/65819/55665


Learn something new every day!

And I wish we had a stronger word than unportable for echo. You see that word tossed around on shell scripting resources where the only system it applies to is a 30 year old version of ksh and it only blows up on a full moon when passed a filename with a literal form feed \f, but echo is a practical portability problem.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: