В [114506] bash[114507], вы можете использовать [114508] shopt -p[114509].[114157].
В bash echo
является встроенной функцией, поэтому вы получаете такое поведение. В sh это не встроенная функция . Похоже, sh использует свою встроенную команду «echo», которая отличается.
Поэтому попробуйте использовать / bin / echo
, а не без / bin /
.
Если вы хотите сохранить переносимость, вы не можете использовать echo или printf , оба обрабатывают неуказанные escape-последовательности \ xXX
как определенные в POSIX.
Даже в системе GNU можно изменить поведение echo
, встроенного или / bin / echo
. Вы можете попробовать:
$ POSIXLY_CORRECT=1 /bin/echo -en '\x61'
-en \x61
$ env BASHOPTS=xpg_echo POSIXLY_CORRECT=1 bash -c "echo -en '\x61'"
-en a
(Вы должны прочитать this для более подробной информации).
Со стандартным набором инструментов POSIX можно использовать awk
:
$ awk 'BEGIN{printf "%c%c%c..", 97, 98, 99}'
abc..