bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: BUG?: (or what's going on?) test for NL == NL fails (bash-4.3.39(3)-


From: Linda Walsh
Subject: Re: BUG?: (or what's going on?) test for NL == NL fails (bash-4.3.39(3)-release)
Date: Sun, 02 Aug 2015 13:30:14 -0700
User-agent: Thunderbird


also noticed this similar strange behavior:

used 'ord'** for this test (trying to compare decimal val of chars)

isatty () { test -c /proc/self/fd/1 ; }
ord () { local nl=""; isatty && nl="\n"; printf "%d$nl" "'$1" ; }
ord "$(printf "\n")"
0
ord "$(printf "\t")"
9
ord "$(printf " ")"
32
ord "$(printf "\r")"
13
-- but this DOES work:
ord $'\n'
10
----
Traditional separators and CR work, -- just "\n".
Am just looking for an efficient way to test for 0x0a
as last char in a var, ... after another 20 minutes of
trying things at random, found this:

 > printf "%d\n" "'${a:0-1:1}'"
 10

Oddly, the final single quote in the string seems unnecessary.
But that (or into a var: printf -v var) both work...but I
feel a bit contorted trying so many odd ways to get something
that I thought would be simple, to work.

Still... why so many problems with \n?
I tried unsetting IFS ---- even setting both "eol" chars,
explicitly (I wondered if both eol chars were 'undef'
w/stty:

stty
speed 38400 baud; line = 0;
kill = ^X; eol = #; eol2 = #; susp = ^Y;   ## yes, I set both eol chars to '#'
only to find it didn't change anything (LF was still end of line).
:-(






reply via email to

[Prev in Thread] Current Thread [Next in Thread]