Hi! I have something like this:
<file> #! /bin/sh ainsl -a $target/etc/sudoers "%adm ALL = NOPASSWD: /bin/su -[mp]" exit 0 </file> Got the expected output (in /etc/sudoers without LINE): %adm ALL = NOPASSWD: /bin/su -[mp] Running again (now containing LINE) leads to: %adm ALL = NOPASSWD: /bin/su -[mp] %adm ALL = NOPASSWD: /bin/su -[mp] (I obviously exptected no adding..) I then tried: ainsl -a $target/etc/sudoers "%adm ALL = NOPASSWD: /bin/su -\[mp\]" Output (without LINE): %adm ALL = NOPASSWD: /bin/su -\[mp\] Second run (now with LINE): %adm ALL = NOPASSWD: /bin/su -\[mp\] %adm ALL = NOPASSWD: /bin/su -\[mp\] Quoting man ainsl(1): ,---- | If PATTERN is not given, LINE is used instead for matching a line | in FILE. Then LINE may also contain the anchors ’^’ and ’$’ which | are only treated specialy at the beginning or end of the pattern | and are used for matching, not when adding the line. Additionaly, | the following characters are escaped in LINE: ( ) + `---- It has something to do with '[' and ']' (it works fine without these characters) but nothing is mentioned in the man-page. Any hints or is this a bug? Greetings, - Darsha