[SOLVED] printf \\xNN not work in script

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, t.t

IMB
Сообщения: 2404
ОС: Debian

[SOLVED] printf \\xNN not work in script

Сообщение IMB » 25.11.2017 20:03

Доброго дня!
Ипользую стандартный метод для вывода символа соответствующего шестнадцетиричному коду

Код: Выделить всё

~$ printf \\x6e
n

К сожалению это с некоего времени перестало работать в скиптах

Код: Выделить всё

~$ cat /tmp/test.sh
#!/bin/sh

printf \\x6e

~$ sh -x /tmp/test.sh
+ printf \x6e
\x6e

Как можно починить?
Спасибо.
Спасибо сказали:

Аватара пользователя
/dev/random
Администратор
Сообщения: 4511
ОС: Gentoo

Re: [SOLVED] printf \\xNN not work in script

Сообщение /dev/random » 25.11.2017 20:18

IMB писал(а):
25.11.2017 20:03
Доброго дня!
Ипользую стандартный метод для вывода символа соответствующего шестнадцетиричному коду

Код: Выделить всё

~$ printf \\x6e
n

К сожалению это с некоего времени перестало работать в скиптах

Код: Выделить всё

~$ cat /tmp/test.sh
#!/bin/sh

printf \\x6e

~$ sh -x /tmp/test.sh
+ printf \x6e
\x6e

Как можно починить?
Спасибо.

В Debian по умолчанию sh - это dash, а не bash. В нём встроенный printf не умеет шестнадцатиричные символы. Можете использовать внешний printf из coreutils через указание полного пути, или же прописать bash в шебанге.
Спасибо сказали:

IMB
Сообщения: 2404
ОС: Debian

Re: [SOLVED] printf \\xNN not work in script

Сообщение IMB » 25.11.2017 21:04

Да мне это в основном надо в busybox.
Спасибо сказали:

Вернуться в «Работа в командной строке»