Hi, Yunfeng Wang wrote:
> $ printf %c 65 66 67 > 666 > > The expected output is ABC, i.e. characters with ASCII code of 65 66 67 I believe the current behavior is correct. POSIX (XCU.4.printf) sayeth[*]: 11. The argument to the 'c' conversion specifier can be a string containing zero or more bytes. If it contains one or more bytes, the first byte shall be written and any additional bytes shall be ignored. If the argument is an empty string, it is unspecified whether nothing is written or a null byte is written. I would suggest using something like perl -e 'print(chr(65), chr(66), chr(67), "\n");' or for i in 65 66 67 do eval printf \'\\$(printf %03o "$i")\' done printf '\n' for your application. Back to the bug: I don't see any explanation of "printf %c" when I run "man bash". Perhaps your manual is different from mine, but if you, perhaps it would be possible to suggest a few words to explain this for future readers. Thanks and regards, Jonathan [*] http://unix.org/2008edition/