2012/5/31 Eric Blake <ebl...@redhat.com>: > On 05/31/2012 05:18 AM, AZ 9901 wrote: >> 2012/5/29 AZ 9901 : >>> Hello, >>> >>> I am looking at the /bin/cron-config script. >>> >>> Line 627, we can find : >>> elif net localgroup "${_admingroup}" | grep -Eiq "^${username}.?$"; then >>> >>> Why .? at the end of the regexp ? "^${username}.?$" > > Because 'net' outputs in DOS mode, with carriage returns at the end. >
OK, I was also thinking about this (talking about buggy output) but I was not sure. Strange that using grep -iq "^${username}$" works fine (well, I just tested this on my XP). Do Windows tools output in DOS mode "when they want" ? >>> >>> We could have problems if for example we already have "user1" in >>> administrators group, and cron user is "user2". >>> "user2" would then not be added to the administrators group. > > Wouldn't that rather be "we could have problems if we already have > 'user1', the output does not have carriage returns, and we are trying to > add 'user12'"? > Yes you're perfectly right, sorry for the mistake :-) >> Any clue about this regexp ? > > Since the trailing '.?' exists to strip carriage returns, would it be > any more robust to write this as: > > net localgroup "${_admingroup}" | d2u | grep -Eiq "^${username}$" > Yes I think so, or using sed 's/\r\n$/\n/' Same effect, should work too. Thank you ! Ben -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple